android学习 在一个活动中关闭所有的活动ActivityCollector

管理所有的活动,需要加一个ActivityCollector的类


代码如下,

public static List<Activity> activities=new ArrayList<Activity>();

public void addActivity(Activity activity){

       activity.add(activity);

}

public void removeActivity(Activity activity){

       activity.remove(activity);

}

public void finishAll(){

       for(Activity activity:activities){

         if(!activity.isfinish()){

           activity.finish();

}

}

}


里面有两句的语法不是很明白

public static List<Activity> activities=new ArrayList<Activity>();

    for(Activity activity:activities){

其实在java学习中好像也见过。不过现在忘了,记得补习java 啊!!!


然后需要新建一个baseactivity ,在里面的oncreate方法里面加入ActivityCollector.addActivity(this);

在ondestory方法里面,加入ActivityCollector.removeActivity(this);


让所有的活动就继承自这个baseactivity


在需退出程序的地方,加入这样的方法ActivityCollector.finishALL();

这样就可以很方便的随时退出程序,不用一定要按很多次的back键



我是在接着上一个使用intent传递数据的工程上做的。

我设置了MAIN和second和third三个活动。在main中设置了两个按键用于打开second和third活动,在third里面用了ActivityCollector.finishall();的方法

最开始,不能打开third这个活动。。折腾了一上午,也没有原因。。。。

后来发现,是我在second和third中均设置了相同的按键id btnBackToMainActivity,当在后面加入了fromSecond和fromThird后,就可以了


网上查了一下,有人研究了这样的问题的,说有时候可以有时候不行。。。老实说没看明白,也不想明白了,

以后设置ID一定要不一样!!

以后设置ID一定要不一样!!

以后设置ID一定要不一样!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值