Android應用程式完全退出

remotesupport發表於2014-07-31

使用單例模式建立一個Activity管理物件,該物件中有一個Activity容器(具體實現自己處理,使用LinkedList等)專門負責儲存新開啟的每一個Activity,並且容易理解、易於操作,非常不錯!


A.MyApplication類(儲存每一個Activity,並實現關閉所有Activity的操作)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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);
 }
}

B.在每一個Activity中的onCreate方法裡新增該ActivityMyApplication物件例項容器中

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

C.在需要結束所有Activity的時候呼叫exit方法

1
MyApplication.getInstance().exit();

相關文章