返回
Fragments 的生命週期:探索依附於Activity的 Fragments
Android
2023-11-03 07:50:42
**Fragments 的生命週期:探索依附於Activity的 Fragments**
**引言**
掌握 Android 應用程式的生命週期對於開發流暢且健全的應用程式至關重耍。在本指南中,我们将重點探討 Fragment 的生命週期,特別是與承載它的Activity緊密相連的部分。
**Fragments 的概述**
Fragments 是一種可重新使用、可替換的元件,用於在不同的螢幕導向、語言和硬體組態下建構出變化多端的使用者體驗。它們允許開發者以模組化和解耦的方式組織他們的應用程式架構。
**與Activity生命週期的互動**
與Activity類似,Fragments 也有自己的生命週期。然而,它們的生命週期與承載它們的Activity緊密相關。Fragments 的生命週期取決於它們與Activity生命週期的關聯。
**依附於Activity的Fragments**
當 Fragment 附加到Activity時,它將體驗與Activity相應階段一致的生命週期呼叫。具體而言,Fragment的生命週期與Activity的下列階段相關:
* **onAttach():** 當Fragment與Activity建立關聯時呼叫。
* **onActivityCreated():** 在Activity的 `onCreated()` 方法呼叫後立即呼叫,且僅在 Fragment 的 `onViewCreated()` 方法呼叫前呼叫。
* **onAttachedToWindow():** 當Fragment的根檢視層(View Hierarchy)附加到Activity的檢視層(View Hierarchy)時呼叫。
* **onResume():** 當Fragment所在的Activity可見且與使用者互動時呼叫。
* **onPause():** 當Fragment所在的Activity暫停時呼叫。
**分離的Fragments**
與依附於Activity的Fragments相反,分離的Fragments具有獨立的生命週期,並且不會隨著承載它們的Activity而被銷毀。它們通常用於後端任務或執行在Activity生命週期之外運作的服務。
**最佳實務**
在管理Fragments的生命週期時,遵循下列最佳實務非常重耍:
* 適當地使用Fragment生命週期方法。
* 避免在Fragment的生命週期方法中執行耗時的或網路相關的操作。
* 使用 `onSaveInstanceState()`和`onRestoreInstanceState()` 來儲存和還原Fragment的狀態。
* 對於與Activity生命週期緊密相連的Fragments,請注意遵循Activity的生命週期呼叫順序。
**範例**
在下麵的範例中,`MainActivity`包含依附的Fragment,稱為`MyFragment`。`MyFragment` 的生命週期呼叫將與`MainActivity`的生命週期呼叫一致。
```java
public class MainActivity extends FragmentActivity {
protected void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(activity);
// Fragments 的 onActivityCreated()生命週期方法會在此處呼叫
}
}
與Back棧的互動
當使用back棧來管理Fragments的瀏覽堆疊時,Fragments的生命週期會變得更加複雜。請参閱Activity and Back Stacks
([連結])(https://developer.android.com/develop/ui/activities/back-stack) 來進一步瞭解此主題。
進階主題
對於更進階的Fragments生命週期主題,開發者可以參閱官方的開發者文件和線上論壇。
總結
透過瞭解Fragments的生命週期如何與承載的Activity生命週期互動,開發者可以更有效地管理Fragments並打造流暢、健全的應用程式。遵循最佳實務並適當地使用生命週期方法對於確保 Fragments在各種情況下的一致且預期的行爲至關重耍。