標籤:
為了確保對應用中 Activity 的建立和銷毀狀態進行控制,所以就需要一個全域的變數來記錄和銷毀這些 Activity。這裡的大概思路是寫一個類繼承 Application,並使擷取該 Application 的實體為單例模式,在新的 Activity 被建立時在對應 Activity 的 onCreate 方法中將自己存入 Application 的集合中,然後在應用退出時將 Application 存有的 Activity 逐個進行銷毀即可完全退出應用。代碼如下:
package cn.sunzn.app;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.Application;public class AgentApp extends Application { private List<Activity> activities = new ArrayList<Activity>(); private static AgentApp instance; private AgentApp() { } /** * 單例模式中擷取唯一的 Application */ public static AgentApp getInstance() { if (null == instance) { instance = new AgentApp(); } return instance; } /** * 存放 Activity 到 List 中 */ public void addActivity(Activity activity) { activities.add(activity); } /** * 遍曆存放在 List 中的 Activity 並退出 */ public void onTerminate() { super.onTerminate(); for (Activity activity : activities) { activity.finish(); activities.remove(activity); } android.os.Process.killProcess(android.os.Process.myPid()); }}
然後在每個 Acitivity 的 onCreate 方法中添加如下代碼:
AgentApp.getInstance().addActivity(this);
最後在你要退出應用的介面執行如下的代碼:
AgentApp.getInstance().onTerminate();
通過將 Activity 納入 Application 對所維護集合的管理,即可達到完美退出應用的效果。
Android 編程下 Activity 的建立和應用退出時的銷毀