Android退出App

Android退出app

我是用在用户协议未同意时退出app的

关闭所有的Activity

  1. 新建一个AndroidCollector文件,定义一个LinkedList;
  2. 定义addActivity()方法,用于添加Activity到集合中;
  3. 定义removeActivity()方法,用于删除Activity;
  4. 定义finishAll()方法,用于关闭集合中的所有Activity;
  5. BaseActivity()中重写onCreate和onDestroy;
  6. 在需要的地方调用finishAll();

具体代码如下:

ActivityCollector

/*
关闭所有的Activity
/
public class ActivityCollector {
public static LinkedList activities = new LinkedList();
/

添加Activity
/
public static void addActivity(Activity activity){
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();
}
}
}
}

BaseActivity

public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityCollector.addActivity(this);
}

@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}

完全退出app

上面那个只是关闭所有的Activity,但生成的线程之类的没有退出,所以调用了ActivityCollector.finishAll())之后再加上:

//关闭所有的Activity;
ActivityCollector.finishAll();
//完全退出App
ActivityManager activityMgr = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
activityMgr.killBackgroundProcesses(context.getPackageName());
System.exit(0);

posted @ 2021-07-29 15:06  踩红帽的小姑娘  阅读(145)  评论(0)    收藏  举报