问题:Android中应用程序弹出退出对话框退出应用程序时,老是出现上一个Activity,于是将在Activity跳转时将其finish()掉,结果还是不行!

寻其原因:原来项目中有好多Activity用来显示界面,之间还掺扎着数据信息的交流,我们知道Activity是以栈的方式存放,要想将程序退出,自然得将众多Activity销毁掉了!

解决办法:一种比较流行的Android经典完美退出方法:使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!

步骤如下,3步搞定!
1).MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作)

public class MyApplication extends Application {
    //对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList实现了基于动态数组的数据结构,要移动数据。LinkedList基于链表的数据结构,便于增加删除 
     private List<Activity> activityList = new LinkedList<Activity>();
     private static MyApplication instance;
     private MyApplication(){ }
 //单例模式中获取唯一的MyApplication实例
 public static MyApplication getInstance() {
     if(null == instance) {
        instance = new MyApplication();
     }
     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);
 }
}

2)在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中
MyApplication.getInstance().addActivity(this);
3)在需要结束所有Activity的时候调用exit方法
MyApplication.getInstance().exit();