Android之退出整個應用的一種方法

http://blog.csdn.net/way_ping_li/article/details/7978402


在Android應用開發中,難免會遇到需要完全退出整個應用的時候,我在網上也看了一下,感覺通過廣播是個很好的方法,在這裏,我用了另外一個方法,簡而言之,通過單例模式把每個Activity 的引用添加到一個全局鏈表中,每次退出程序調用System.exit(0)時,先調用鏈表中Activity 的finish方法。直接上代碼:

  1. import java.util.LinkedList;     
  2. import java.util.List;     
  3. import Android.app.Activity;     
  4. import Android.app.AlertDialog;     
  5. import Android.app.Application;     
  6. import Android.content.DialogInterface;     
  7. import Android.content.Intent;     
  8.      
  9. public class SysApplication extends Application {     
  10.     private List<Activity> mList = new LinkedList<Activity>();   //用於存放每個Activity的List  
  11.     private static SysApplication instance;    //SysApplication實例     
  12.      
  13.     private SysApplication() {     //私有構造器,防止外面實例化該對象,  
  14.     }     
  15.      
  16.     public synchronized static SysApplication getInstance() {   //通過一個方法給外面提供實例  
  17.         if (null == instance) {     
  18.             instance = new SysApplication();     
  19.         }     
  20.         return instance;     
  21.     }     
  22.      
  23.     // add Activity      
  24.     public void addActivity(Activity activity) {     
  25.         mList.add(activity);     
  26.     }     
  27.      
  28.     public void exit() {    //遍歷List,退出每一個Activity     
  29.         try {     
  30.             for (Activity activity : mList) {     
  31.                 if (activity != null)     
  32.                     activity.finish();     
  33.             }     
  34.         } catch (Exception e) {     
  35.             e.printStackTrace();     
  36.         } finally {     
  37.             System.exit(0);     
  38.         }     
  39.     }     
  40.      
  41.     @Override     
  42.     public void onLowMemory() {     
  43.         super.onLowMemory();         
  44.         System.gc();   //告訴系統回收  
  45.     }     
  46.      
  47. }    


在每個Activity的onCreate中添加下面代碼,把每個創建的Activity添加到List中管理:

  1. public void onCreate(Bundle savedInstanceState) {     
  2.     super.onCreate(savedInstanceState);          
  3.     SysApplication.getInstance().addActivity(this);   //創建Activity時,添加到List進行管理。  
  4. }    



在我們需要退出程序的時候執行下面代碼:

  1. SysApplication.getInstance().exit(); //調用退出方法 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章