一個應用程序正在進行,Activity執行順序如下:
這時有電話打來了,Activity執行順序如下:
通話結束,Activity執行順序如下:
說明:這個程序在Android 模擬器2.1運行
分析一下這個過程; onStart 緊隨onCreate之後,這個不用多說,onResume和onRestart 都有重啓的意思,他們有什麼區別?爲什麼onStop 前要onPause?首先解釋下onResume(),onRestart () 以及onPause() 。
onResume(): 調用一些刷新UI的函數,每當Activity調用到這裏時就要刷新一下UI各控件的狀態
也就是說用戶輸入焦點時被調用 解釋下, 用戶輸入焦點 用過Android手機或者其他系統的手機時,經常會看到有些窗口雖然能看到但無法對他進行操作,這時的Activity就沒有或得用戶焦點.
如果B Aactivity 跳回到 A Aactivity 並且要改變Aactivity ,onResume()方法會被調用,這是一個刷 新的好機會。
onRestart () 執行過onStop()纔會執行;
onPause() 一般是做一些變量的設置,因爲這個時候Activity馬上就要切到後臺處理,可能有些變量就要被釋放掉或者狀態要做些相應的調整.
舉個例子:Activity正在運行,這時彈出一個Dialog對話框 onPaused馬上被調用了嗎?事實上沒有馬上被調用 ,只有這個Dialog 結束跳轉到另一個Activity 纔會onPaused--onStop。那麼它在彈出對話框的時候調用哪個方法?事實上是一個生命週期方法都沒調用。(測試結果如此 表示費解)
總的來說:
應用程序開始 onCreate()—onStart()—onResume();
電話打來onPause()—onStop();
電話結束:onRestart ()—onStart()—onResume() ;
直到他運行結束onPause()—onStop() ;
這就是情理之中了 一般情況下onResume() 緊跟在onStart()之後