android開發中fragment的生命周期

當我們在一個viewpager放一個fragment,當切換viewpager當中的viewpager時,fragment的打印輸出如下:

 

1.D:\Users\zhongxw>adb logcat -s debug

——— beginning of /dev/log/main

——— beginning of /dev/log/system

V/debug   (17567): onAttach

V/debug   (17567): onCreate

V/debug   (17567): oncreateview

V/debug   (17567): onActivityCreated

V/debug   (17567): onResume

 

切換到別fragment的時打印出:

V/debug   (17567): onPause

V/debug   (17567): onDestroyView

 

註意執行瞭onDestroyView進行瞭銷毀,而下面的onCreateView也是進行對應的

 

重新愀復時執行:

V/debug   (17567): oncreateview

V/debug   (17567): onActivityCreated

V/debug   (17567): onResume

 

再退出:

V/debug   (17567): onPause

V/debug   (17567): onDestroyView

V/debug   (17567): onDestroy

V/debug   (17567): onDetach

 

 

2.如果是打開退出兩種狀態的切換:

打開:

V/debug   (17567): onCreate

V/debug   (17567): oncreateview

V/debug   (17567): onActivityCreated

V/debug   (17567): onResume

 

退出是:

V/debug   (17567): onPause

V/debug   (17567): onDestroyView

V/debug   (17567): onDestroy

V/debug   (17567): onDetach

 

3.**我們看到都沒有執行onPause函數,onPause()多長發生如果點擊fragment中的內容時或者這時彈出別的app或者說是activity,跳轉到一個新界面,把當前的fragment蓋住瞭,生命周期通常是這樣的:

 

D:\Users\zhongxw>adb logcat -s debug

——— beginning of /dev/log/system

——— beginning of /dev/log/main

V/debug   (17567): onPause

V/debug   (17567): onResume

 

跳進入是onPause(),恢復時是onResume()

 

 

4.如果我們fragment已經展示瞭,我們按home鍵進入後臺,再進入前臺,則執行:

A。進入後臺

V/debug   (22269): onPause

 

B,恢復前臺

 

V/debug   (22269): onResume

我們看到這裡前沒有執行onDestroy(),沒有銷毀,所以也沒有執行onCreateView()進行重繪。跟前面3中所描述的切換到別的activity中是一樣的效果。

 

 

這裡我沒有打印onStart()跟onStop()函數,,因為onResume以前一定會執行onStart(),在onPause後也會執行onStop()這個函數

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *