如何安全退出已调用多个Activity的Application

来源:互联网 发布:php微信抢红包源代码 编辑:程序博客网 时间:2024/06/05 16:52

退出Activity 直接调用 finish () 方法即可,退出activity 会执行 onDestroy()方法 。但是某些情况下,我们在应用中开启了很多的Activity,并且我们希望能直接一键退出整个应用,而不是一层一层的向外退出Activity。


  • 抛异常强制退出:
    (暴力、偏门、不建议采用)通过抛异常,使程序Force Close,如100/0。 但是,需要解决的问题是,如何使程序结束掉,而不弹出Force Close的窗口。可以考虑进行全局捕获,在捕获到异常的时候android.os.Process.killProcess(android.os.Process.myPid());
    某些手机可能还是会弹出Force Close的窗口,不建议使用。

  • 记录打开的Activity:
    每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。Application里定义:
public List<Activity> lists = new ArrayList<Activity>();     开启Activity时:    lists.add(this);    退出Activity时:    lists.remove(this);    一键退出时:    for(Activity activity: lists){        activity.finish();    }

  • 发送特定广播:
    在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。
    //给某个activity 注册接受接受广播的意图
    registerReceiver(receiver, filter)
    //如果接受到关闭activity的广播 就调用finish()方法 把当前的Activity finish()掉

  • 递归退出
    在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。

  • 设置FLAG_ACTIVITY_CLEAR_TOP开启Activity来退出
    通过这种方式退出时需要注意:开启的那个Activity必须位于栈底,且其launchMode需要设置成single task模式,否则开启的那个Activity会摧毁重建,最后栈中就剩下这一个Activity
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老旧房下水漏怎么办? 下水道弯管漏水怎么办 下水铸铁管漏水怎么办 下水被油堵了怎么办 下水道堵塞玩具怎么办 下水道不通怎么办? 马桶被硬饼堵住怎么办 卫生间屋顶漏水怎么办 卫生间吊顶漏水怎么办 卫生间吊顶滴水怎么办 卫生间地砖渗水怎么办 卫生间外墙渗水怎么办 墙顶漏水怎么办 屋子漏水怎么办 楼顶房子漏水怎么办 洗衣卫生间漏水怎么办 卫生间墙漏水怎么办 卫生间地砖漏水怎么办 地下暗管漏水怎么办 埋墙内水管漏水怎么办 家里墙体渗水怎么办 水管周围漏水怎么办 金属水管漏水怎么办 楼顶排水管堵塞怎么办 排水管接口漏水怎么办 水管子冻住了怎么办 井冻了怎么办 水管压力小怎么办 pe给水管漏水怎么办 给水暗埋管漏水怎么办 ppr给水管漏水怎么办 铁水管有个洞怎么办 佛像弄坏了怎么办 洗手间管道漏水怎么办 牙齿开裂了怎么办 牙齿两半了怎么办 牙齿裂开两半怎么办 大牙裂开松动怎么办 太阳能水管破裂怎么办 壁纸翘边怎么办 水管门闸伐漏水怎么办