android程序的完美退出


[java]   view plain  copy
 
  1. import java.util.LinkedList;  
  2. import java.util.List;  
  3. import android.app.Activity;  
  4. import android.app.Application;  
  5.   
  6.   
  7. public class SysApplication extends Application {  
  8.     private List<Activity> mList = new LinkedList<Activity>();  
  9.     private static SysApplication instance;  
  10.   
  11.   
  12.     private SysApplication() {  
  13.     }  
  14.   
  15.   
  16.     public synchronized static SysApplication getInstance() {  
  17.         if (null == instance) {  
  18.             instance = new SysApplication();  
  19.         }  
  20.         return instance;  
  21.     }  
  22.   
  23.   
  24.     // add Activity  
  25.     public void addActivity(Activity activity) {  
  26.         mList.add(activity);  
  27.     }  
  28.   
  29.   
  30.     public void exit() {  
  31.         try {  
  32.             for (Activity activity : mList) {  
  33.                 if (activity != null)  
  34.                     activity.finish();  
  35.             }  
  36.         } catch (Exception e) {  
  37.             e.printStackTrace();  
  38.         } finally {  
  39.             System.exit(0);  
  40.         }  
  41.     }  
  42.   
  43.   
  44.     public void onLowMemory() {  
  45.         super.onLowMemory();  
  46.         System.gc();  
  47.     }  
  48. }  


在每一个会访问到的页面avtivity中添加 SysApplication.getInstance().addActivity(this); 就可以了

然后再退出的按钮或者地方调用             SysApplication.getInstance().exit();




参考博客:补充了解、

你真的有必要退出吗——再说Android程序的退出功能    http://blog.csdn.net/congqingbin/article/details/7480257


原来,我们只是把Activity界面结束了,但界面结束后,只要有线程在跑,程序其实仍在运行,可谓马照跑舞照跳。Activity关闭后只是界面消失了,其它该有的东西完全是照常进行;如果线程中有网络请求,则还是照样占用CPU和带宽。

你可能感兴趣的:(android程序的完美退出)