安卓活动(Activity)和碎片(Fragment)的生命周期
引言
對于安卓中生命周期的過程以及相應的事件的了解是非常重要的。
活動(Activity)的生命周期
Activity 類中定義了七個事件回調方法,與Activity生命周期的每一個環節對應。
1. onCreate()
這個方法你已經看到過很多次了,每個活動中我們都重寫了這個方法,它會在活動第一次被創建的時候調用。你應該在這個方法中完成活動的初始化操作,比如說加載布局、綁定事件等。
2. onStart()
這個方法在活動由不可見變為可見的時候調用。
3. onResume()
這個方法在活動準備好和用戶進行交互的時候調用。此時的活動一定位于返回棧的棧頂,并且處于運行狀態。
4. onPause()
這個方法在系統準備去啟動或者恢復另一個活動的時候調用。我們通常會在這個方法中將一些消耗CPU 的資源釋放掉,以及保存一些關鍵數據,但這個方法的執行速度一定要快,不然會影響到新的棧頂活動的使用。
5. onStop()
這個方法在活動完全不可見的時候調用。它和onPause()方法的主要區別在于,如果啟動的新活動是一個對話框式的活動,那么onPause()方法會得到執行,而onStop()方法并不會執行。
6. onDestroy()
這個方法在活動被銷毀之前調用,之后活動的狀態將變為銷毀狀態。
7. onRestart()
這個方法在活動由停止狀態變為運行狀態之前調用,也就是活動被重新啟動了。
完整生存期:活動在onCreate()方法和onDestroy()方法之間所經歷的,就是完整生存期。一般情況下,一個活動會在onCreate()方法中完成各種初始化操作,而在onDestroy()方法中完
成釋放內存的操作。
可見生存期:活動在onStart()方法和onStop()方法之間所經歷的,就是可見生存期。在可見生存期內,活動對于用戶總是可見的,即便有可能無法和用戶進行交互。我們可以通過這兩個方法,合理地管理那些對用戶可見的資源。比如在onStart()方法中對資源進行加載,而在onStop()方法中對資源進行釋放,從而保證處于停止狀態的活動不會占用過多內存。
前臺生存期:活動在onResume()方法和onPause()方法之間所經歷的,就是前臺生存期。在前臺生存期內,活動總是處于運行狀態的,此時的活動是可以和用戶進行相互的,我們平時看到和接觸最多的也這個狀態下的活動。
碎片(Fragment)的生命周期
1. 運行狀態
當一個碎片是可見的,并且它所關聯的活動正處于運行狀態時,該碎片也處于運行狀態。
2. 暫停狀態
當一個活動進入暫停狀態時(由于另一個未占滿屏幕的活動被添加到了棧頂),與它相關聯的可見碎片就會進入到暫停狀態。
3. 停止狀態
當一個活動進入停止狀態時,與它相關聯的碎片就會進入到停止狀態。或者通過調用FragmentTransaction 的remove()、replace()方法將碎片從活動中移除,但有在事務提交之前調用addToBackStack()方法,這時的碎片也會進入到停止狀態。總的來說,進入停止狀態的碎片對用戶來說是完全不可見的,有可能會被系統回收。
4. 銷毀狀態
碎片總是依附于活動而存在的,因此當活動被銷毀時,與它相關聯的碎片就會進入到銷毀狀態。或者通過調用FragmentTransaction 的remove()、replace()方法將碎片從活動中移除,但在事務提交之前并沒有調用addToBackStack()方法,這時的碎片也會進入到銷毀狀態。
常用回調事件方法
onAttach()
當碎片和活動建立關聯的時候調用。
onCreateView()
為碎片創建視圖(加載布局)時調用。
onActivityCreated()
確保與碎片相關聯的活動一定已經創建完畢的時候調用。
onDestroyView()
當與碎片關聯的視圖被移除的時候調用。
onDetach()
當碎片和活動解除關聯的時候調用。
部分內容參考自《第一行代碼——Android》
博客名稱:王樂平博客
博客地址:http://blog.lepingde.com
CSDN博客地址:http://blog.csdn.net/lecepin
總結
以上是生活随笔為你收集整理的安卓活动(Activity)和碎片(Fragment)的生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Class Diagram
- 下一篇: Exynos4412 Uboot 移植(