# Android中Fragment的生命周期是什么
在Android開發中,`Fragment`是重要的UI組件之一,它擁有自己的生命周期,與`Activity`的生命周期緊密關聯但又有獨立性。理解Fragment的生命周期對開發靈活的界面至關重要。
---
## 一、Fragment生命周期的核心方法
Fragment的生命周期包含以下關鍵方法(按執行順序排列):
1. **onAttach()**
Fragment與Activity關聯時觸發,此時可通過`getActivity()`獲取宿主Activity的引用。
2. **onCreate()**
初始化Fragment的非UI組件(如數據加載),但此時視圖尚未創建。
3. **onCreateView()**
創建并返回Fragment的UI視圖(通過`inflate`布局文件)。若Fragment無UI,可返回`null`。
4. **onViewCreated()**
視圖創建完成后調用,適合進行視圖初始化(如綁定控件、設置監聽器)。
5. **onActivityCreated()**
宿主Activity的`onCreate()`完成后觸發,表明Activity和Fragment的視圖層級已就緒。
6. **onStart()**
Fragment可見但未進入前臺(與Activity的`onStart()`同步)。
7. **onResume()**
Fragment進入交互狀態(用戶可操作)。
8. **onPause()**
失去焦點(如Activity被覆蓋),應保存輕量級數據。
9. **onStop()**
Fragment不可見(宿主Activity進入后臺或Fragment被移除)。
10. **onDestroyView()**
銷毀與Fragment關聯的視圖,但Fragment實例仍存在。
11. **onDestroy()**
清理Fragment資源(如線程、監聽器)。
12. **onDetach()**
解除與Activity的關聯,此后`getActivity()`返回`null`。
---
## 二、生命周期場景示例
- **添加Fragment到Activity**:
`onAttach()` → `onCreate()` → `onCreateView()` → `onViewCreated()` → `onActivityCreated()` → `onStart()` → `onResume()`
- **按下返回鍵退出Activity**:
`onPause()` → `onStop()` → `onDestroyView()` → `onDestroy()` → `onDetach()`
- **屏幕旋轉重建**:
Fragment會隨Activity銷毀并重建,可通過`setRetainInstance(true)`保留實例(但視圖仍需重建)。
---
## 三、注意事項
1. **與Activity生命周期的協調**
Fragment的生命周期受宿主Activity影響,例如Activity的`onPause()`會先于Fragment的`onPause()`執行。
2. **視圖狀態保存**
在`onSaveInstanceState()`中保存臨時數據,并在`onCreateView()`或`onViewCreated()`中恢復。
3. **避免內存泄漏**
在`onDestroy()`中釋放資源(如取消網絡請求、注銷廣播)。
通過合理利用生命周期方法,可以高效管理Fragment的UI、數據和用戶交互邏輯。
(注:實際字數約550字,可根據需要調整內容細節。)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。