Android一键退出应用程序

Posted 森然献凉i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android一键退出应用程序相关的知识,希望对你有一定的参考价值。

核心思路:将所有Activity添加到List集合,对集合里的Activity进行遍历退出

 

第一步:创建ActivityCollector.Java(收集器类)

ActivityCollector.Java

使用三个方法分别实现:向集合中添加Activity; 从集合中移除Activity ;移除并关闭所有Activity

package com.cdw.study2;

import android.app.Activity;

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

public class ActivityCollector {
    //存储活动的集合
    public static List<Activity>activities=new ArrayList<>();


    //向集合中添加Activity
    public static void addActivity(Activity activity){
        if (activity!=null){
            activities.add(activity);
        }
    }
    //从集合中移除Activity
    public static void removeActivity(Activity activity){
        activities.remove(activity);
    }

    //移除并关闭所有Activity
    public static void finishAll(){
        for (Activity activity:activities){
            if (!activity.isFinishing()){
                activity.finish();
            }
        }
        activities.clear();
    }
}

第二步:创建BaseActivity.Java(基类),继承AppCompatActivity

     重写onCreate方法,调用ActivityCollector中的addActivity方法

     重写onDestro方法,调用ActivityCollector中的removeActivity方法

package com.cdw.study2;

import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //当创建一个Activity就将这个Activity添加到集合当中
        ActivityCollector.addActivity(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //当销毁一个Activity时将此活动在集合中移除
        ActivityCollector.removeActivity(this);
    }
}

第三步:在一键退出控件的点击事件中调用ActivityCollector中的finishAll方法

bt1=findViewById(R.id.bt1);
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //销毁所有活动,实现一键退出整个app
                ActivityCollector.finishAll();
            }
        });

第四步:将你的全部Activity从AppCompatActivity继承改为继承BaseActivity

BaseActivity也中重写了两个方法(上文),当继承自BaseActivity,可在Activity创建或销毁时自动调用

结束

以上是关于Android一键退出应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Android 应用技巧: 手把手教你 优雅实现 “一键退出 App”

当我将片段添加到我的视图寻呼机时(在嵌套滚动视图中),我无法从具有设备后退按钮的应用程序退出

Android APP一键退出的方法总结分析

Android Reorder Fragment Backstack

android 利用广播实现程序的强制退出

带有透明状态栏的全屏片段(以编程方式)