进入一个activity时,如何把之前的activity全部finish?
比如现在有a,b2个activity,现在从b进入c时,要把a和b都finish掉,要怎么弄?我不想通过临时存储activity变量的方法来实现,有没有跟直接点的代码。 --------------------编程问答-------------------- 在b调用c的语句 startactivity 之后调用finishactivity b 就自己finish掉了
在启动activity c的过程中用handler 通知a finish --------------------编程问答-------------------- a到b 在跳转的时候直接跟一句
a.finish() ,
然后再starActivity(B),
我就这么干的,界面跳转的时候直接把本Activity结束掉 --------------------编程问答-------------------- 其实,可以更直接的消除activity的,因为Android中是以Activity栈的形式来管理activity的,在androidmanifast.xml文件中配置activity时,launchMode属性时属性值写SingleInstance模式,这样一个activity栈就一个activity实例,不需要考虑activity有没有结束,因为Activity栈中每次只能有一个activity实例,a和b和c分别在不同的栈里,互不影响 --------------------编程问答-------------------- 采用广播的方式:
可以在a和b的onCreate中动态注册一个相同的action广播,启动c后发送这个action的广播,
a和b收到广播后再finish掉自己。 --------------------编程问答-------------------- 使用Application
声明一个Acitivity的列表
private List<Activity> activityList = new LinkedList<Activity>();
每次调用activity时,都传入application的activityList里
最后统一销毁
// 遍历所有Activity finish--------------------编程问答-------------------- 楼长正解,全部finish()掉
public void delete()
{
for (Activity activity : activityList)
{
activity.finish();
}
if (activityList.size() == 0)
activityList.clear();
}
补充:移动开发 , Android