建立activity管理器,隨時隨地退出程序

有時你會發現當前想退出程序是非常不方便 的,需要連按很多次 Back鍵纔行。而按 Home鍵只是把程序掛起,並沒有退出程序。那麼我們的程序需要一個註銷或者退出的功能該怎麼辦呢?

必須 要有一個隨時隨地都能退出程序的方案纔行。 

其實解決思路也很簡單,只需要用一個專門的集合類對所有的活動進行管理就可以了, 下面我們就來實現一下。

 新建一個 ActivityCollector類作爲活動管理器,代碼如下所示: 

public class ActivityCollector {

public static List<Activity> activities = new ArrayList<Activity>();

public static void addActivity(Activity activity) { 

activities.add(activity);

 }


public static void removeActivity(Activity activity) { 

activities.remove(activity); 

}


public static void finishAll() {

  for (Activity activity : activities) {

 if (!activity.isFinishing()) { 

activity.finish(); 

}

 } 

}

在活動管理器中,我們通過一個 List來暫存活動,然後提供了一個 addActivity()方法用 於向 List中添加一個活動,

提供了一個 removeActivity()方法用於從 List中移除活動,

最後 提供了一個 finishAll()方法用於將 List中存儲的活動全部都銷燬掉。 

接下來修改 BaseActivity中的代碼,如下所示:

 public class BaseActivity extends Activity {

@Override 

protected void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 

Log.d("BaseActivity", getClass().getSimpleName()); 

ActivityCollector.addActivity(this);

 


@Override

 protected void onDestroy() { 

super.onDestroy(); 

ActivityCollector.removeActivity(this); 

}

}

 在 BaseActivity 的 onCreate()方法中調用了 ActivityCollector的 addActivity()方法,表明 將當前正在創建的活動添加到活動管理器裏。

然後在 BaseActivity中重寫 onDestroy()方法, 並調用了 ActivityCollector的 removeActivity()方法,表明將一個馬上要銷燬的活動從活動管 理器裏移除。

從此以後,不管你想在什麼地方退出程序,只需要調用 ActivityCollector.finishAll()方法 就可以了。

日常筆記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章