Activity和Fragment生命周期的關系如下面的。主要是通過log了解他們的生命周期。我們通常很多事情都是直接在onCreate裡面做了。但是其實有的事情是應該在其他的
步驟完成。目前我使用到的是更新UI及資料的操作應該在onStart裡面做。因為跳到其他界面進行編輯後傳回原來的界面時
往往會對UI進行更新,這時候需要在onStart裡面跟新一下。下面對照這個圖。寫了一個簡單的程式。有三個Fragment :FirstFragment,SecondFragment,ThirdFragment,分别依附這三個activity:FirstActivty,SecondActivity,ThirdActivity。其中FirstFragment兩個按鈕分别可以跳到SecondActivity和ThirdActivity。ThirdActivity是一個對話框(在AndroidManifest.xml裡面可以設定)。
啟動FirstActivity --> 啟動SecondActivity ---> 傳回FirstActivity ---> 退出FirstActivty 的log
//啟動FirstActvity
08-04 16:24:48.816: I/DBG(966): FirstActivity-> onCreate
08-04 16:24:48.817: I/DBG(966): FirstFragment-> onAttach
08-04 16:24:48.818: I/DBG(966): FirstFragment-> onCreate
08-04 16:24:48.818: I/DBG(966): FirstFragment-> onCreateView
08-04 16:24:48.823: I/DBG(966): FirstFragment-> onActivityCreated
08-04 16:24:48.824: I/DBG(966): FirstFragment-> onStart
08-04 16:24:48.824: I/DBG(966): FirstActivity-> onStart
08-04 16:24:48.825: I/DBG(966): FirstActivity-> onResume
08-04 16:24:48.825: I/DBG(966): FirstFragment-> onResume
//按鍵啟動了SecondActvity
08-04 16:24:49.759: I/DBG(966): FirstFragment-> onPause
08-04 16:24:49.759: I/DBG(966): FirstActivity-> onPause
08-04 16:24:49.794: I/DBG(966): SecondActivity-> onCreate
08-04 16:24:49.795: I/DBG(966): SecondFragment-> onAttach
08-04 16:24:49.795: I/DBG(966): SecondFragment-> onCreate
08-04 16:24:49.796: I/DBG(966): SecondFragment-> onCreateView
08-04 16:24:49.799: I/DBG(966): SecondFragment-> onActivityCreated
08-04 16:24:49.799: I/DBG(966): SecondFragment-> onStart
08-04 16:24:49.799: I/DBG(966): SecondActivity-> onStart
08-04 16:24:49.800: I/DBG(966): SecondActivity-> onResume
08-04 16:24:49.801: I/DBG(966): SecondFragment-> onResume
08-04 16:24:50.086: I/DBG(966): FirstFragment-> onStop
08-04 16:24:50.087: I/DBG(966): FirstActivity-> onStop
//按取消鍵傳回到FirstActvity,是以一些重新整理顯示的動作應該在onstart裡面執行
08-04 16:24:51.208: I/DBG(966): SecondFragment-> onPause
08-04 16:24:51.209: I/DBG(966): SecondActivity-> onPause
08-04 16:24:51.214: I/DBG(966): FirstActivity-> onRestart
08-04 16:24:51.215: I/DBG(966): FirstFragment-> onStart
08-04 16:24:51.215: I/DBG(966): FirstActivity-> onStart
08-04 16:24:51.216: I/DBG(966): FirstActivity-> onResume
08-04 16:24:51.216: I/DBG(966): FirstFragment-> onResume
08-04 16:24:51.478: I/DBG(966): SecondFragment-> onStop
08-04 16:24:51.479: I/DBG(966): SecondActivity-> onStop
08-04 16:24:51.480: I/DBG(966): SecondFragment-> onDestroyView
08-04 16:24:51.482: I/DBG(966): SecondFragment-> onDestroy
08-04 16:24:51.483: I/DBG(966): SecondFragment-> onDetach
08-04 16:24:51.484: I/DBG(966): SecondActivity-> onDestroy
//按取消鍵退出FirstActvity
08-04 16:24:52.836: I/DBG(966): FirstFragment-> onPause
08-04 16:24:52.837: I/DBG(966): FirstActivity-> onPause
08-04 16:24:53.124: I/DBG(966): FirstFragment-> onStop
08-04 16:24:53.127: I/DBG(966): FirstActivity-> onStop
08-04 16:24:53.127: I/DBG(966): FirstFragment-> onDestroyView
08-04 16:24:53.128: I/DBG(966): FirstFragment-> onDestroy
08-04 16:24:53.129: I/DBG(966): FirstFragment-> onDetach
08-04 16:24:53.129: I/DBG(966): FirstActivity-> onDestroy
啟動FirstActivity --> 啟動ThirdActivity ---> 傳回FirstActivity ---> 退出FirstActivty 的log
代碼點選這裡下載下傳: