安卓活动管理类中的finishAll:随时随地一键彻底退出该APP的实现(finish所有活动以后是否杀死进程的情况对比)

安卓活动管理类的实现

package com.example.activitytest;

import android.app.Activity;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

public class ActivityCollector {
    public static List<Activity> activities = new ArrayList<>();
    /*设置vector存储activity 还是用List的ArrayList存储activity?????
    * Java中的List不具备线程安全性但是据说效率比vector高一点,在这呢?用哪个更好呢?*/

    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){
            activity.finish();
        }
    }
}

finishAll按键在第二个活动中,先打开第一个活动,然后从第一个活动进入第二个活动,在第二个活动下执行finishAll操作,执行之前finishAll之前的日志信息如下(即已经打开第二个活动但是没有进行任何操作时):

在这里插入图片描述

finishAll函数中不杀死进程的Logcat日志情况(已经在Base活动中覆写)

在这里插入图片描述

如图

在这里插入图片描述

finishAll函数中杀死进程的Logcat日志情况(已经在Base活动中覆写)

在这里插入图片描述

如图

在这里插入图片描述

疑问:为什么加了进程杀死的操作之后日志信息停步在第二个活动已经打开但是未做任何操作的时候的状态了呢?

此链接的一个解释如图所示:应该是看finish方法的源代码得到的解释

在这里插入图片描述

另一个:此链接如图

在这里插入图片描述

posted @ 2022-03-05 00:02  在天边偷看小天使  阅读(15)  评论(0)    收藏  举报  来源