比如当期的task栈是A-》B-》C
C activity在最上端,这个时候我从C startActivity到D,
我要求这个时候A B C都被干掉,只剩下D,请问需要加什么flag??
谢谢!

解决方案 »

  1.   


    兄弟,这个不行。FLAG_ACTIVITY_CLEAR_TOP的意思如果A->B->C,要再次启动A或者B的时候才有用。
      

  2.   

    扯吧,這個FLAG意思是 ABCD D->B 變成AB
    目標Activity已在棧中存在,將會把位於改目標activity之上的activity從棧中彈出。
      

  3.   

    试试调用A、B、C的finish()方法
      

  4.   

    难道我要记忆住A B C的对象?
    不然怎么调用他们的finish?
    Android这里做得很蹩脚啊
      

  5.   

    这个把他干掉干什么呢,你打开一个activity之前的窗口不是干掉的吗?虽然你关闭当前的activity,还会出现,但是能保证你之前的activity都不会显示啊,如果要干掉的话就finish(),destroy()
      

  6.   


    有这个需求啊。不仅要被盖住,而且要被destroy掉,这样在D上按返回键就直接退出程序了。
    不要C B  A依次都要按一次返回键。
      

  7.   


    public class ScreenManager {  private static Stack activityStack;  private static ScreenManager instance;  private ScreenManager(){  }  public static ScreenManager getScreenManager(){  instance=new ScreenManager();  }  return instance;  }  //退出栈顶Activity  public void popActivity(Activity activity){  activity.finish();  activityStack.remove(activity);  activity=null;  }  }  //获得当前栈顶Activity  public Activity currentActivity(){  Activity activity=activityStack.lastElement();  return activity;  }  //将当前Activity推入栈中  public void pushActivity(Activity activity){  activityStack=new Stack();  }  activityStack.add(activity);  }  //退出栈中所有Activity  public void popAllActivityExceptOne(Class cls){  while(true){  Activity activity=currentActivity();  break;  }  break;  }  popActivity(activity);  }  }  }
      

  8.   

    你说的 功能是不是 杀死全部的 activity 这样有一个方法可以 满足你 就是 自己建一个 BaseActivity
    然后其它的activity 都 继承 BaseActivity 这样做的好处是 
    当你要退出系统的时候只要 杀死 BaseActivity 就可以直接退出整个程序。