Activity跳轉及Intent的清除
如果是當前Activity彈出的dialog則不會執行Activity任何生命週期中的方法, 只有其它Activity彈出了Dialog或者切換Activity才會執行onPause() 。
關於Activity的生命週期的解釋:
-
啟動Activity:系統會先呼叫onCreate方法,然後呼叫onStart方法,最後呼叫onResume,Activity進入執行狀態。
-
當前Activity被其他Activity覆蓋其上或被鎖屏:系統會呼叫onPause方法,暫停當前Activity的執行。
-
當前Activity由被覆蓋狀態回到前臺或解鎖屏:系統會呼叫onResume方法,再次進入執行狀態。
-
當前Activity轉到新的Activity介面或按Home鍵回到主屏,自身退居後臺:系統會先呼叫onPause方法,然後呼叫onStop方法,進入停滯狀態。
-
使用者後退回到此Activity:系統會先呼叫onRestart方法,然後呼叫onStart方法,最後呼叫onResume方法,再次進入執行狀態。
-
當前Activity處於被覆蓋狀態或者後臺不可見狀態,即第2步和第4步,系統記憶體不足,殺死當前Activity,而後使用者退回當前Activity:再次呼叫onCreate方法、onStart方法、onResume方法,進入執行狀態。
-
使用者退出當前Activity:系統先呼叫onPause方法,然後呼叫onStop方法,最後呼叫onDestory方法,結束當前Activity。
當Activity 或fragment向另一個activity跳轉,或者從activity後退前一個activity的某個fragment 中, 經常用intent 傳一個值來判斷要跳轉的位置,如果需要清空intent 傳的值話,一般都是採取 xIntent.removeExtra(flag),這個flag是Intent.putStringExtra(flag)中的flag的值,這個是從跳轉後的Activity寫入的。