Android——Fragment生命週期總結

概述

Fragment的主要功能就是創建一個View,並且有一個生命週期來管理這個View。

Fragment的生命週期和Activity的生命週期類似,都有一些回調方法。

各個生命週期

在這裏插入圖片描述
左側是Activity的生命週期,右側對應這個狀態下執行Fragment的生命週期方法。

Fragment有的生命週期與Activity生命週期名字都是一樣的,對應的功能也類似。

只不過在Created狀態和Destroy狀態多了一些方法。

onAttach()

當Fragment和它所在的Activity關聯起來的時候調用。

onCreateView()

當需要創建一個與Fragment關聯的View的時候會調用,這個方法會返回一個View。

inflate的三個參數含義:

onDestroyView()

當與Fragment關聯的那個View與Fragment解除的關聯,從View樹中移除的時候調用。下次Fragment需要顯示一個View的時候會重現調用onCreateView。

onDetach()

當Fragment與之前onAttach()關聯的那個Activity解除關係的時候調用。

和Activity類似,Fragment可以停留的三個狀態:

Resumed

Fragment的運行狀態,此時的Fragment處於運行狀態,可以用戶進行交互。類似Activity的Resumed

Paused

有其他的Activity獲取焦點,前臺運行,Fragment所在的Activity失去焦點,部分顯示在前臺Activity下面。

Stopped

Fragment不在可見。此時的Fragment所在的Activity可能已經stopped了或者fragment從Activity中移除到Fragment的退回棧中

一個stopped狀態的Fragment沒有銷燬,還在存活狀態,他的狀態被系統保存,只是不可見、不可交互,此時很可能被系統回收。

可以利用Bundle來記錄Fragment的狀態,當Activity被銷燬需要記錄Fragment狀態,並且在Activity重新創建的時候恢復Fragment的狀態。可以保存Fragment的狀態在Fragment的nSaveInstanceState()回調方法中,在onCteat()、onCreatView()或者onActivityCreated()方法中進行恢復。

在生命週期中Activity與Fragment的最大不同之處是回退棧是相互獨立的,Activity的回退棧是系統來管理的,Fragment的回退棧是被宿主Activity來管理的,也就是說我們可以自己來進行控制(調用addToBackStack()).

Fragment生命週期也沒有啥多說的哈哈,導致這篇文章很短。😁

在這裏插入圖片描述

發佈了91 篇原創文章 · 獲贊 63 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章