前情提要(Previously)
本系列將使用 Android Studio 將《第一行代碼》(書中講解案例使用Eclipse)刷一遍,旨在為想入坑 Android 開發,並選擇 Android Studio 作為開發 IDE 的同學開路。
PS:其實我就是現學現賣,希望我能堅持刷完。
在前面剛學習了Fragment,這次來了解一下她的生命周期。
系列目錄在此:
Fragment 的生命周期
先來看一下 Fragment 的生命周期圖解吧。

與 Activity 的 關系
Fragment 必須是依存於 Activity 而存在的,因此 Activity 的生命周期會直接影響到 Fragment 的生命周期。Android 官網這張圖很好的說明了兩者生命周期的關系,如下

跟 Activity 比較,多了下面幾個回調函數:
- onAttach(),當 Fragment 和 Activity 建立關聯時調用。
- onCreateView(),當為 Fragment 創建視圖時調用。
- onActivityCreated(),與 Fragment 關聯的 Activity 已經創建完畢時調用。
- onDEstroyView(),當與 Fragment 關聯的視圖被移除時調用。
- onDetach(),當 Fragment 和 Activity 接觸關聯是調用。
體驗 Fragment 的生命周期
打開上一篇 Android Studio 單刷《第一行代碼》系列 05 —— Fragment 基礎 中的 FragmentTest 項目,修改 RightFragment 中的代碼,重寫每一個回調方法在里面加上輸出日志,代碼如下:
public class RightFragment extends Fragment {
public static final String TAG = "RightFragment"; @Override public void onAttach(Activity activity) { super.onAttach(activity); Log.d(TAG, "onAttach"); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "onCreate"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.d(TAG, "onCreateView"); View view = inflater.inflate(R.layout.right_fragment, container, false); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.d(TAG, "onActivityCreated"); } @Override public void onStart() { super.onStart(); Log.d(TAG, "onStart"); } @Override public void onResume() { super.onResume(); Log.d(TAG, "onResume"); } @Override public void onPause() { super.onPause(); Log.d(TAG, "onPause"); } @Override public void onStop() { super.onStop(); Log.d(TAG, "onStop"); } @Override public void onDestroyView() { super.onDestroyView(); Log.d(TAG, "onDestroyView"); } @Override public void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy"); } @Override public void onDetach() { super.onDetach(); Log.d(TAG, "onDetach"); }}
- 運行,RightFragment 第一次加載,查看 Logcat 中的日志,如下圖

- 點擊 LeftFragment 中的 Button,AnotherRightFragment 替換 RightFragment 出現,查看日志,如下圖

- 按 Back 鍵,RightFragment 出現,查看日志,如下圖

- 再按 Back 鍵,程序退出,查看日志,如下圖

OK 了,我們對 Fragment 的生命周期已經了解的差不多,更深刻的理解以后用到的時候再說了。
其它(Miscellaneous)
盡管我試圖在本文中盡量完整的進行描述,但受限於篇幅和我的個人水平,本文難免有所遺漏,歡迎在評論中指出。
如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!
關於作者(About Me)
本文謝絕轉載,如需轉載需征得作者本人同意,謝謝。
