Activity统一退出

android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())
或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C
三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上
一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程
序。但这样比较麻烦,而且逐个返回的体验并不友好。

    使用栈统一管理项目中的Activity。建立一个单例模式进行管理。代码如下:

import java.util.LinkedList;
import java.util.List;

import android.app.Activity;
import android.app.Application;

public class ExitApplication extends Application {


 private List<Activity> activityList=new LinkedList<Activity>();

 private static ExitApplication instance;

 private ExitApplication()
 {
 }
 //单例模式中获取唯一的ExitApplication 实例
 public static ExitApplication getInstance()
 {
 if(null == instance)
 {
 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统一退出)