关闭所有的activity

本文参考链接:https://blog.csdn.net/perryiii/article/details/77281250

 

一、创建类ActivityCollect,在这个类中编写addActivity,removeActivity和finishAll等方法。

复制代码
public class ActivityCollector {

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

    public static void addActivity(Activity activity) {
        activities.add(activity);
    }

    public static void removeActivity(Activity activity) {
        activities.remove(activity);
    }

    public static void finishAll() {
        for (Activity activity : activities) {
            if (!activity.isFinishing()) {
                activity.finish();
            }
        }
    }
}
复制代码

二、创建类BaseActivity,继承AppCompatActivity,并重写onCreate,onDestroy

复制代码
//@RuntimePermissions
public class BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityCollector.addActivity(this);//加入这一行
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityCollector.removeActivity(this);//加入这一行
    }
}
复制代码

三、让所有的Activity都继承BaseActivity

然后就可以在你所希望的地方调用finishAll方法。

ActivityCollector.finishAll();

posted @ 2020-06-17 10:29  码弄  阅读(208)  评论(0)    收藏  举报
编辑推荐:
· 一个自认为理想主义者的程序员,写了5年公众号、博客的初衷
· 大数据高并发核心场景实战,数据持久化之冷热分离
· 运维排查 | SaltStack 远程命令执行中文乱码问题
· Java线程池详解:高效并发编程的核心利器
· 从“看懂世界”到“改造世界”:AI发展的四个阶段你了解了吗?
阅读排行:
· .NET 8 gRPC 实现高效100G大文件断点续传工具
· STM32学会要花费多长时间?一个从机械转行老程序员的血泪史
· LinqPad:C#代码测试学习一品神器
· .NET入行第4年(第二集)
· C#/.NET/.NET Core技术前沿周刊 | 第 43 期(2025年6.16-6.22)
点击右上角即可分享
微信分享提示