在安卓开发中实现退出App时销毁所有Activity

简介: 做Android开发时,经常遇到退出应用就会提示应用停止运行,很明显这是有bug,查阅了网上的相关资料,发现finish()、System.

做Android开发时,经常遇到退出应用就会提示应用停止运行,很明显这是有bug,查阅了网上的相关资料,发现finish()、System.exit(0)、android.os.Process.killProcess(android.os.Process.myPid())只能销毁当前的activity,并不能销毁所有的activity,为了实现退出时便销毁所有的Activity,写了下面一个方法:

1、使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器

public class MyApplication extends Application {

    public static List<Object> activitys = new ArrayList<Object>();
    private static MyApplication instance;

    //获取单例模式中唯一的MyApplication实例   

   public static MyApplication getInstance() {
        if (instance == null)
            instance = new MyApplication();
        return instance;
    }

    // 添加Activity到容器中
    public void addActivity(Activity activity) {
        if (!activitys.contains(activity))
            activitys.add(activity);
    }

    // 遍历所有Activity并finish
    public void destory() {

            for (Object activity : activitys) {
                ((Activity) activity).finish();
            }
        System.exit(0);
    }
}

2、在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中

MyApplication.getInstance().addActivity(this);

3、在需要退出的Activity中的onDestroy方法里调用destroy方法

MyApplication.getInstance().destroy();

个人想法,希望对大家有所帮助,如果哪位大神有更好的方法,希望指教一下,谢谢

相关文章
|
5月前
|
Java 应用服务中间件 数据库
0004Java安卓程序设计-springboot基于APP的鲜花商城
0004Java安卓程序设计-springboot基于APP的鲜花商城
46 0
|
5月前
|
Java 数据库 Android开发
0003Java安卓程序设计-springboot基于Android的学习生活交流APP
0003Java安卓程序设计-springboot基于Android的学习生活交流APP
33 0
|
5月前
|
Java 关系型数据库 MySQL
0002Java安卓程序设计-基于Uniapp+springboot菜谱美食饮食健康管理App2
0002Java安卓程序设计-基于Uniapp+springboot菜谱美食饮食健康管理App
33 0
|
5月前
|
Android开发
0002Java安卓程序设计-基于Uniapp+springboot菜谱美食饮食健康管理App1
0002Java安卓程序设计-基于Uniapp+springboot菜谱美食饮食健康管理App
61 0
|
2月前
|
Java 开发工具 Android开发
旅游app(安卓大作业)
旅游app(安卓大作业)
24 1
旅游app(安卓大作业)
|
2月前
|
存储 数据可视化 API
天气预报app(安卓系统)
天气预报app(安卓系统)
31 2
|
2月前
|
算法 Java Android开发
安卓逆向 -- 实战某峰窝APP(静态分析)
安卓逆向 -- 实战某峰窝APP(静态分析)
26 0
|
2月前
|
网络协议 算法 Android开发
安卓逆向 -- 实战某峰窝APP(动态分析)
安卓逆向 -- 实战某峰窝APP(动态分析)
25 4
|
2月前
|
Android开发
App Inventor 2 Activity启动器技巧:如何查看并启动其他App
Activity启动器(ActivityStarter)如何查看并启动其他App,可以通过解压源码查看,或使用“包名查看器”App查看,不同品牌手机可能略有不同。
53 0
|
2月前
|
Java 测试技术 API
安卓APP和iOS APP在测试上的区别是什么?
安卓APP和iOS APP在测试上的区别是什么?

热门文章

最新文章