Android完全退出应用程序

Android退出应用程序会调用finish(),但这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C三个Activity,而想在B或C中Activity退出,调用上面的方法,只会销毁当前的Activity返回上一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程序,但是这样比较麻烦。下面是一个比较好的方法:

首先要定义一个继承Application的类:


[java]

  1. public class ExitManager extends Application{  
  2.     private List<Activity> activityList=new LinkedList<Activity>();  
  3.        private static ExitManager instance;  
  4.          
  5.        private ExitManager(){  
  6.              
  7.        }  
  8.        public static ExitManager getInstance(){  
  9.            if (instance==null) {  
  10.             instance=new ExitManager();  
  11.         }  
  12.            return instance;  
  13.        }  
  14.        public void addActivity(Activity activity){  
  15.            activityList.add(activity);  
  16.        }  
  17.        public void exit(){  
  18.            for(Activity activity:activityList){  
  19.                  if(!activity.isFinishing()){  
  20.                       activity.finish();  
  21.                  }  
  22.            }  
  23.            int id=android.os.Process.myPid();  
  24.            if(id!=0){  
  25.                android.os.Process  
  26.                 .killProcess(id);  
  27.            }  
  28.        }  
  29. }  


其次要在每个Activity的onCreate方法中加入如下代码:

[java]

  1. ExitManager.getInstance().addActivity(this);  


也就是将每个Activity加入到Activity容器中。最后,在实现退出应用程序的地方加入如下代码:

[java]

  1. ExitManager.getInstance().exit();  

标签