1. 程式人生 > >Activity跳轉及Intent的清除

Activity跳轉及Intent的清除

如果是當前Activity彈出的dialog則不會執行Activity任何生命週期中的方法, 只有其它Activity彈出了Dialog或者切換Activity才會執行onPause()

關於Activity的生命週期的解釋:

  1. 啟動Activity:系統會先呼叫onCreate方法,然後呼叫onStart方法,最後呼叫onResume,Activity進入執行狀態。

  2. 當前Activity被其他Activity覆蓋其上或被鎖屏:系統會呼叫onPause方法,暫停當前Activity的執行。

  3. 當前Activity由被覆蓋狀態回到前臺或解鎖屏:系統會呼叫onResume方法,再次進入執行狀態。

  4. 當前Activity轉到新的Activity介面或按Home鍵回到主屏,自身退居後臺:系統會先呼叫onPause方法,然後呼叫onStop方法,進入停滯狀態。

  5. 使用者後退回到此Activity:系統會先呼叫onRestart方法,然後呼叫onStart方法,最後呼叫onResume方法,再次進入執行狀態。

  6. 當前Activity處於被覆蓋狀態或者後臺不可見狀態,即第2步和第4步,系統記憶體不足,殺死當前Activity,而後使用者退回當前Activity:再次呼叫onCreate方法、onStart方法、onResume方法,進入執行狀態。

  7. 使用者退出當前Activity:系統先呼叫onPause方法,然後呼叫onStop方法,最後呼叫onDestory方法,結束當前Activity。

當Activity 或fragment向另一個activity跳轉,或者從activity後退前一個activity的某個fragment 中,  經常用intent 傳一個值來判斷要跳轉的位置,如果需要清空intent 傳的值話,一般都是採取 xIntent.removeExtra(flag),這個flag是Intent.putStringExtra(flag)中的flag的值,這個是從跳轉後的Activity寫入的。