比如当期的task栈是A-》B-》C
C activity在最上端,这个时候我从C startActivity到D,
我要求这个时候A B C都被干掉,只剩下D,请问需要加什么flag??
谢谢!
C activity在最上端,这个时候我从C startActivity到D,
我要求这个时候A B C都被干掉,只剩下D,请问需要加什么flag??
谢谢!
解决方案 »
- 求页面布局分析
- textview垂直方向自动的滚动
- android中编写XML文件时候代码提示没有提示
- 又是一个问题 求救啊
- 防做来电通的号码归属地提示
- android4.0 转屏(切屏)重复执行onCreate() (tabhost 解决)
- 台式摄像头采集到的视屏传到手机显示不清晰
- 求高手解答....我让tabactivity继承SlidingMenuActivity 但 getSupportActionBar为null不能设置action
- findFragmentById 获取 Fragment为空!!!
- ConcurrentModificationException 错误
- DDMS发送中文短信时出现乱码如何解决
- java中,截取字符,并取对应的值的问题,在线等
兄弟,这个不行。FLAG_ACTIVITY_CLEAR_TOP的意思如果A->B->C,要再次启动A或者B的时候才有用。
目標Activity已在棧中存在,將會把位於改目標activity之上的activity從棧中彈出。
不然怎么调用他们的finish?
Android这里做得很蹩脚啊
有这个需求啊。不仅要被盖住,而且要被destroy掉,这样在D上按返回键就直接退出程序了。
不要C B A依次都要按一次返回键。
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); } } }
然后其它的activity 都 继承 BaseActivity 这样做的好处是
当你要退出系统的时候只要 杀死 BaseActivity 就可以直接退出整个程序。