Android Activity生命週期 舉例說明

 一個應用程序正在進行,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()之後

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章