Activity1 启动Activity2. 在Activity2中如何关闭Activity1,启动Activity3?
Activity1 启动Activity2,代码如下:
Intent intent = new Intent();
intent.setClass(Activity1.this, Activity2.class);
startActivity(intent);Activity2中如何关闭Activity1 ?

解决方案 »

  1.   

    在Activity1中把自己finish掉就可以了~
    Intent intent = new Intent();
    intent.setClass(Activity1.this, Activity2.class);
    startActivity(intent);
    Activity1.this.finish();
      

  2.   

    不是的,在Activity2中是有做判断的,满足条件才开启Activity3。
    开启Activity3的时候要关闭Activity1。如果没有满足条件就不关闭Activity1,
    按return键是可以回到Activity1的。
      

  3.   

    方法很多,下面推荐一种:
    在Activity2的判断中,如果满足条件,开启Activity3,同时发送一个广播,通知Activity1关闭
    在Activity1定义广播接收器,如果收到你发送的那个广播就关闭自己
    关键代码如下:
    Activity2
    if(...){
       sendBroadcast(new Intent("com.fl.activity.close"));
    }

    Activity1
    if (intent.getAction().equals("com.fl.activity.close")) {
       //关闭自己
    }
      

  4.   

    不同的activity互相控制职能使用上面的方法或者是handler
      

  5.   

    这个直接用finish或者用广播都行,但是这样都不是太好,如果跳转后就已经finish了,那么广播就没有 用了,如果跳转的时候就finish,那么其他的时候就不能控制了,于是根据自己的情况的进行选择
      

  6.   

    3楼的方法不错,,谢谢了!
    finish的方法不行,已经说过了,Activity1 是否要关闭,需要在Activity2中判断。
    流程是必须要Activity2决定是否关闭。
    大家还有没有什么更好的方法
      

  7.   

    为什么你一定要在一个activity里去关闭另一个activity,一般情况下并不需要这么做
      

  8.   

    Context c=getApplicationContext();
    if(c=Activity1.this){
    Activity1.finish();
    }
    这是我的思路,具体还没侧过
      

  9.   

    楼上的,是Activity2关闭Activity1,
      

  10.   

    自己实现一个activity栈,每次显示只显示栈里面的东西,不用android默认的activity栈。
      

  11.   

    ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 
    RunningTaskInfo taskInfo = am.getRunningTasks(1).get(0);哪位大哥知道,怎么通过RunningTaskInfo 关闭这个Activity?
      

  12.   

    我的这个在 任何Activity中都有效,想在哪关就在哪关啊