Activity生命週期

  1. onCreate:與onDestroy配對,表示Activity正在被創建,這是生命週期的第一個方法。在這個方法中可以做一些初始化的工作(加載佈局資源、初始化Activity所需要的數據等),耗時的工作在異步線程上完成。

  2. onRestart:表示Activity正在重新啓動。一般情況下,在當前Activity從不可見重新變爲可見的狀態時onRestart就會被調用。這種情形一般是由於用戶的行爲所導致的,比如用戶按下Home鍵切換到桌面或者打開了一個新的Activity(這時當前Activity會暫停,也就是onPause和onStop被執行),接着用戶有回到了這個Activity,就會出現這種情況。

  3. onStart:與onStop配對,表示Activity正在被啓動,並且即將開始。但是這個時候要注意它與onResume的區別。兩者都表示Activity可見,但是onStart時Activity還正在加載其他內容,正在向我們展示,用戶還無法看到,即無法交互。

  4. onResume:與onPause配對,表示Activity已經創建完成,並且可以開始活動了,這個時候用戶已經可以看到界面了,並且即將與用戶交互(完成該週期之後便可以響應用戶的交互事件了)。

  5. onPause:與onResume配對,表示Activity正在暫停,正常情況下,onStop接着就會被調用。在特殊情況下,如果這個時候用戶快速地再回到當前的Activity,那麼onResume會被調用(極端情況)。一般來說,在這個生命週期狀態下,可以做一些存儲數據、停止動畫的工作,但是不能太耗時,如果是由於啓動新的Activity而喚醒的該狀態,那會影響到新Activity的顯示,原因是onPause必須執行完,新的Activity的onResume纔會執行。

  6. onStop:與onStart配對,表示Activity即將停止,可以做一些稍微重量級的回收工作,同樣也不能太耗時(可以比onPause稍微好一點)。

  7. onDestroy:與onCreate配對,表示Activity即將被銷燬,這是Activity生命週期的最後一個回調,我們可以做一些回收工作和最終的資源釋放(如Service、BroadReceiver、Map等)。

    正常情況下,Activity的常用生命週期就是上面的7個,下圖更加詳細的描述的各種生命週期的切換過程:

    這裏寫圖片描述

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