ActivityManager
这是一个记录Activity创建和销毁Activity的管理类
public class ActivityManager {
private List<Activity> mActivities = new ArrayList<>();
public static ActivityManager activityManager;
private ActivityManager(){
}
public static ActivityManager getInstance(){
if(activityManager == null){
synchronized (ActivityManager.class){
if(activityManager == null){
activityManager = new ActivityManager();
}
}
}
return activityManager;
}
public void addActivity(Activity activity){
if(!mActivities.contains(activity)){
mActivities.add(activity);
}
}
public void finishActivity(Activity activity){
for(Activity activity1: mActivities){
if(activity1 == activity){
activity1.finish();
}
}
}
public void finishAllActivity(){
for(Activity activity1: mActivities){
activity1.finish();
}
}
}
杀掉当前进程:
在onDestroy方法中杀掉当前进程
//杀掉当前进程
Process.killProcess(Process.myPid());
如何安全退出多个activity
1、抛异常强制退出:
该方法通过抛异常,使程序Force Close。验证可以,但是,需要解决的问题是,如何使程序结束掉,而不弹出Force
Close的窗口。
2、记录打开的Activity:
每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。
3、发送特定广播:
在需要结束应用时,发送一个特定的广播,每个Activity收到广播后,关闭即可。
4、递归退出
在打开新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。