如何退出 Activity? 如何安全退出已調(diào)用多個(gè) Activity 的 Application?

2018-07-04 11:04 更新

  1. 通常情況用戶退出一個(gè) Activity 只需按返回鍵,我們寫代碼想退出 activity 直接調(diào)用 finish() 方法就行.
  2. 發(fā)送特定廣播: 在需要結(jié)束應(yīng)用時(shí), 發(fā)送一個(gè)特定的廣播, 每個(gè) Activity 收到廣播后, 關(guān)閉即可.

//給某個(gè) activity 注冊接受接受廣播的意圖 registerReceiver(receiver, filter)

//如果接受到的是 關(guān)閉 activity 的廣播 activity finish()掉

  1. 遞歸退出 就調(diào)用 finish()方法 把當(dāng)前的在打開新的 Activity 時(shí)使用 startActivityForResult, 然后自己加標(biāo)志, 在 onActivityResult 中處理, 遞歸關(guān)閉.
  2. 其實(shí)也可以通過 intent 的 flag 來實(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.
  3. 記錄打開的 Activity: 每打開一個(gè) Activity, 就記錄下來. 在需要退出時(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);


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號