我們在項目開發的時候可能會遇到安全退出應用的場景,如何能夠安全退出多個Activity?網上有很多方法,下面這種方法就是我最喜歡的,簡單又易懂。如下:每打開一個Activity,就記錄下來,在需要退出時,關閉每一個Activity即可。使用單例模式創建一個Activity管理對象,該對象中有一個Activity容器。定義一個Application類來存儲Activity對象的引用。代碼如下:
public class ExitAppliation extends Application { private List activityList = new LinkedList(); private static ExitAppliation instance; private ExitAppliation() { } // 單例模式中獲取唯一的MyApplication實例 public static ExitAppliation getInstance() { if (null == instance) { instance = new ExitAppliation(); } 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); } }
註:Application類是為瞭那些需要保存全局變量設計的基本類,你可以在AndroidManifest.xml的標簽中進行自己的實現,這樣的結果是:當你的application或者包被建立的時候將引起那個類被建立。就是說application是用來保存全局變量的,並且是在package創建的時候就跟著存在瞭。所以當我們需要創建全局變量的時候,不需 要再像j2se那樣需要創建public權限的static變量,而直接在application中去實現。隻需要調用Context的getApplicationContext或者Activity的getApplication方法來獲得一個application對象,再做出相應
的處理。
然後在每個Activity的onCreate()方法中添加下面代碼:
ExitAppliation.getInstance().addActivity(this);
在需要結束所有Activity的時候調用exit方法:
ExitAppliation.getInstance().exit();