淺顯易懂的Activity生命週期
**深入瞭解activity的生命週期對我們開發android應用有很大的幫助,activity中有很多回調方法,系統會在合適的時候呼叫合適的方法。什麼時候初始化頁面,什麼時候建立資料庫連線,什麼時候銷燬頁面,什麼時候關閉資料庫連線,這都是有講究的,如果亂做一通,程式的執行效率會大大降低,其健壯性也會受到很大的影響。**
activity 的生命週期演示圖我就不貼了,百度上找一下,很多的。與activity生命週期相關的方法主要有6個,分別是onCreate、onStart、onResume、onPause、onStop、onDestory,下面我們挨個分析,系統在什麼情況下會呼叫這些類
1.onCreate()
activity啟動的時候呼叫該方法,不會多次呼叫,除非該activity被銷燬了
2.onStart()
activity啟動的時候呼叫,該方法可能會被多次呼叫
3.onResume()
這個方法呼叫頻率比較高,基本上只要activity顯示出來,就一定會呼叫這個方法,不管該activity是重新啟動的,還是由後臺到前臺的一個狀態切換,均會呼叫該方法。很多資料的更新都會在這個方法體內實現
4.onPause()
當 Activity 被另一個透明或者 Dialog 樣式的 Activity 覆蓋時的狀態。此時它依然與視窗管理器保持連線,系統繼續維護其內部狀態,所以它仍然可見,但它已經失去了焦點故不可與使用者互動。
5.onStop()
如果被另外一個activity覆蓋了,就會呼叫該方法。或者使用者按下Home鍵或者Back鍵時候也會呼叫它。
6.onDestory()
當activity處於後臺執行時,系統會判斷當前的執行記憶體是否很緊張,如果很緊張,系統就會將一些後臺執行的app關閉掉,執行它們的onDestory()方法。這時候,一個app就完全退出了。這個現象其實是很常見的,比如我們開啟一個微信客戶端,然後讓他後臺執行,接著又打開了一個遊戲,正在玩遊戲的時候,有一個好朋友發來了微信訊息,你想看一下對方發過來的是什麼,然後就點選了微信app,正常的情況下應該是直接顯示出來,但是很不幸,微信app從初始介面重新載入了,其實是因為你在玩遊戲的時候手機記憶體消耗太大,系統為了不讓你的遊戲shutdown,就shutdown了你的微信。這回懂了嗎?
在學習的時候,這六個方法都要弄得清清楚楚的。但是到了開發過程中,你會發現其實用的最多的還是onCreate、onResume、onPause、onDestory方法,onStop和onStart其實用得並不多。
另外,如果將新知識與生活中的小事結合到一起,你會發現,其實學習還是蠻簡單的。。。