Android 完美退出 App (Exit)
阿新 • • 發佈:2018-12-30
最近兩天為了解決Android上面退出程式問題折騰了半死,在google & baidu 上面找了很久、很久出來的完全千篇一律,說的方法有三,但是經過我試驗後全部不行。
三個方法分別是:
- killProcess, 這種方式當你kill後 Activity 會返回到上一個Activity
- Android Level 8(包含8)前使用一個API來操作,Level8以後又是另外一種,所以不能通用
- 使用 FLAG_ACTIVITY_CLEAR_TOP,從 A 到 B
public class AgentApplication extends Application { private List<Activity> activities = new ArrayList<Activity>(); public void addActivity(Activity activity) { activities.add(activity); } @Override public void onTerminate() { super.onTerminate(); for (Activity activity : activities) { activity.finish(); } onDestroy(); System.exit(0); } }
然後在 Activity onCreate 的時候來呼叫 addActivity (),有人可能想到這個Application需要在所有的 Activity onCreate的時候都使用,需要做一個單例例項。其實根本不需要。在 Activity 中使用 this.getApplication() 就可以了。 最後在你需要推出程式的地方呼叫 application.onTerminate() 就可以了。記住:super.onTerminate() 必須呼叫,程式碼中的 onDestroy()是我自己的釋放其他資源的方法,不是系統的。 執行以上程式碼後,在LogCat 中會出現一行提示: Process 包名 (pid xxxxx) has died. 證明你的程式退出了。現在你可以測試了。 希望對大家有用。同時感謝同事胡楠幫我處理其他問題,使得我才有時間來 寫部落格,謝謝。