當啟動activity是,同時啟動activity裡面的fragment,各生命周期的起調流程
11-22 16:51:22.051 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onCreate===11111
11-22 16:51:22.070 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onStart===33333
11-22 16:51:22.073 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onResume===22222
11-22 16:51:22.093 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onAttach===1111
...Fragment====onCreate===22222
11-22 16:51:22.102 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onCreateView===333333
...Fragment====onActivityCreated===4444444
...Fragment====onStart===55555
...Fragment====onResume===666666
說明:
隻有真正的掌握 生命周期 才能更好的運用frgment .
1.onAttach()
作用:fragment已經關聯到activity,這個時候 activity已經傳進來了, 獲得activity的傳遞的值 就可以進行 與activity的通信裡, 當然也可以使用getActivity(),前提是這個fragment已經和宿主的activity關聯,并且沒有脫離,有且隻有調用一次。
2.onCreate()
系統建立fragment的時候回調他,在他裡面執行個體化一些變量
這些個變量主要是:當你 暫停 停止的時候 你想保持的資料
他隻調用一次。
3.onCreateView()
第一次使用的時候 fragment會在這上面畫一個layout出來, 為了可以畫控件 要傳回一個 布局的view,也可以傳回null j 就什麼都沒有顯示。
當系統用到fragment的時候 fragment就要傳回他的view,越快越好 ,是以盡量在這裡不要做耗時操作,比如從資料庫加載大量資料
4onActivityCreated()
當Activity中的onCreate方法執行完後調用。
從這句官方的話可以看出:當執行onActivityCreated()的時候 activity的onCreate才剛完成。
是以在onActivityCreated()調用之前 activity的onCreate可能還沒有完成,
是以不能再onCreateView()中進行 與activity有互動的UI操作,UI互動操作可以在onActivityCreated()裡面進行。
是以呢,這個方法主要是初始化那些你需要你的父Activity或者Fragment的UI已經被完
整初始化才能初始化的元素。
5.onStart()
和activity一緻,啟動Fragement 啟動時回調,,此時Fragement可見。
6.onResume()
和activity一緻 在activity中運作是可見的。激活, Fragement 進入前台, 可擷取焦點時激活。
7.onPause()
和activity一緻 其他的activity獲得焦點,這個仍然可見第一次調用的時候,指的是 使用者 離開這個fragment(并不是被銷毀)
通常用于 使用者的送出(可能使用者離開後不會回來了)
8.onStop()
和activity一緻, fragment不可見的, 可能情況:activity被stopped了或者 fragment被移除但被,加入到回退棧中,一個stopped的fragment仍然是活着的如果長時間不用也會被移除。
9. onDestroyView()
Fragment中的布局被移除時調用。表示fragemnt銷毀相關聯的UI布局, 清除所有跟視圖相關的資源。
然後這個知識移除視圖 并沒有銷毀而且還沒有脫離activity
10.onDestroy()
銷毀fragment對象, 跟activity類似了。
11.onDetach()
Fragment和Activity解除關聯的時候調用。 脫離activity。
當退出目前fragment時,同時退出目前宿主activity時,各聲明周期起調流程
11-22 16:52:35.410 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onPause===777777
11-22 16:52:35.411 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onPause===4444444
11-22 16:52:35.768 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onStop===888888
11-22 16:52:35.768 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onStop===555555
11-22 16:52:35.769 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onDestroy===9999999
...Fragment====onDetach===000000
11-22 16:52:35.769 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onDestroy===666666
目前fragment從背景重新回到前台可見時,fragment與宿主activity各生命周期流程
11-22 16:55:39.499 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onStart===55555
11-22 16:55:39.499 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onStart===33333
11-22 16:55:39.501 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onResume===22222
11-22 16:55:39.501 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onResume===666666
目前fragment從前台可見到背景不可見時,fragment與宿主activity生命周期流程
11-22 16:59:12.944 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onPause===777777
11-22 16:59:12.945 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onPause===4444444
11-22 16:59:13.322 8358-8358/com.txjifei.mapclient.liteapp I/lgqq: ...Fragment====onStop===888888
11-22 16:59:13.323 8358-8358/com.txjifei.mapclient.liteapp E/lgqq: ...Activity====onStop===555555