歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 怎麼退出整個應用程序?

在開發Andorid程序的時候,難免會牽扯到退出整個應用程序的情況,怎麼完全退出呢?請參閱下面的關鍵代碼:

  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>();  
  11.     private static SysApplication instance;  
  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() {  
  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方法中添加類似代碼:
  1. public void onCreate(Bundle savedInstanceState) {  
  2.     super.onCreate(savedInstanceState);       
  3.     SysApplication.getInstance().addActivity(this);  
  4. }  

在需要退出程序的時候,調用:

  1. SysApplication.getInstance().exit();  

簡而言之,通過單例模式把每個Activity 的引用添加到一個全局鏈表中,每次退出程序調用System.exit(0)時,先調用鏈表中Activity 的finish方法。

Copyright © Linux教程網 All Rights Reserved