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