每个Activity都有自己的生命周期,被打开了最终就要被关闭。
下面是四种结束当前activity的方法:
//关闭当前activity方法一
finish();
//关闭当前界面方法二
android.os.Process.killProcess(android.os.Process.myPid());
//关闭当前界面方法三
System.exit(0);
//关闭当前界面方法四
this.onDestroy();
在开发中,通常我们会通过this.finish();方法来结束当前的activity,但有时候我们在项目开发的时候,可能会遇到安全退出应用的场景,那么如何能够安全退出多个activity呢?
下面给大家介绍一种简单又易懂的方法:
这个方法的思路是:
1、每打开一个activity,就记录下来,在需要退出时,关闭每一个已记录的activity即可;
2、使用单例模式创建一个activity管理对象,该对象中有一个activity容器;
3、定义一个application类来存储activity对象的引用;
实现步骤如下:
一、自定义application类
public class ExitApplication extends Application{
private List<Activity> activityList = new LinkedList();
private static ExitApplication instance;
private ExitApplication() {
}
//单例模式中获取唯一的MyApplication实例
public static ExitApplication getInstance() {
if (instance == null) {
instance = new ExitApplication();
}
return instance;
}
//添加Activity到容器中
public void addActivity(Activity activity) {
activityList.add(activity);
}
//遍历所有Activity并finish
public void exit() {
for (Activity activity : activityList) {
activity.finish();
}
System.exit(0);
}
}
二、在每个activity的onCreate()方法中添加下面代码:
ExitApplication.getInstance().addActivity(this);
三、在需要结束所有activity的时候调用exit()方法:
ExitApplication.getInstance().exit();