- 通常情況用戶退出一個(gè) Activity 只需按返回鍵,我們寫(xiě)代碼想退出 activity 直接調(diào)用 finish() 方法就行.
- 發(fā)送特定廣播: 在需要結(jié)束應(yīng)用時(shí), 發(fā)送一個(gè)特定的廣播, 每個(gè) Activity 收到廣播后, 關(guān)閉即可.
//給某個(gè) activity 注冊(cè)接受接受廣播的意圖 registerReceiver(receiver, filter)
//如果接受到的是 關(guān)閉 activity 的廣播 activity finish()掉
- 遞歸退出 就調(diào)用 finish()方法 把當(dāng)前的在打開(kāi)新的 Activity 時(shí)使用 startActivityForResult, 然后自己加標(biāo)志, 在 onActivityResult 中處理, 遞歸關(guān)閉.
- 其實(shí)也可以通過(guò) intent 的 flag 來(lái)實(shí)現(xiàn) intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)激活一個(gè)新的 activity。 此時(shí)如果該任務(wù)棧中已經(jīng)有該 Activity, 那么系統(tǒng)會(huì)把這個(gè) Activity 上面的所有 Activity 干掉. 其實(shí)相當(dāng)于給 Activity 配置的啟動(dòng)模式為 SingleTop.
- 記錄打開(kāi)的 Activity: 每打開(kāi)一個(gè) Activity, 就記錄下來(lái). 在需要退出時(shí), 關(guān)閉每一個(gè) Activity
List<Activity> lists; // 在 application 全局的變量里面
lists = new ArrayList<Activity>;
lists.add(this);
for(Activity activity: lists) {
activity.finish();
}
lists.remove(this);
更多建議: