退出所有应用,监控打开了什么活动

Posted 岑忠满

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了退出所有应用,监控打开了什么活动相关的知识,希望对你有一定的参考价值。

1.新建类活动管理器类ActivityCollector 

public class ActivityCollector {
    public static List<Activity>activities = new ArrayList<Activity>();
    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();
            }
        }
    }
}

提供了一个 addActivity()方法用于向 List 中添加一个活动

提供了一个 removeActivity()方法用于从 List 中移除活动

最后提供了一个 finishAll()方法用于将 List 中存储的活动全部都销毁掉

 

2.新建类BaseActivity继承于Activity

在BaseActivity中不设置界面,把其他所有类继承于BaseActivity,他们也会继承Activity中的所有内容;

public class BaseActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("BaseActivity", getClass().getSimpleName());//监控是哪个activity启动
        ActivityCollector.addActivity(this);
    }

    @Override
    protected void onDestroy() {//活动关闭,则从activity中移除该活动
super.onDestroy(); ActivityCollector.removeActivity(this); } }

3.在你需要的时候,调用ActivityCollector.finishAll(); 就能关掉所有活动啦!

以上是关于退出所有应用,监控打开了什么活动的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在 Android 片段/活动中意外退出应用程序?

Android,完成所有活动

共享元素转换:活动到嵌套在另一个活动中的片段

构建应用程序架构(活动和片段)的最佳方式是啥

在应用关闭时单击 Firebase 通知后打开特定的活动/片段

如何从片段返回主要活动