要建立一個Fragment,你必須建立一個Fragment的子類(或一個既存的Fragment的子類)。Fragment類的代碼看上去有點象Activity,它包含了類似Activity的的回調方法,如onCreate()、onStart()、onPause()和onStop()方法。實際上,如果你正在把一個既存的Android應用程式轉換成使用Fragment的應用程式,你只需簡單的把Activity的回調方法的代碼移到各自的Fragment的回調方法中。
通常,至少應該實現下列生命週期方法:
onCreate()
當建立Fragment時系統調用這個方法。在你的實現中,你應該初始化哪些在Fragment暫停態、終止態、和恢複態時想要保持狀態的的Fragment組件。
onCreateView()
當第一次用Fragment來描畫使用者介面時,系統調用這個方法。要用你的Fragment來描畫一個UI介面,你必須從這個方法中返回一個View,這個View是Fragment布局的根。如果Fragment沒有提供UI介面,那麼它返回一個null。
onPause()
在使用者要離開Fragment的第一時刻系統會調用這個方法(但這並意味著Fragment要被銷毀)。通常應該在這兒提交本次使用者會話之外的要持久化的改變(因為使用者可能不在回來)。
對於每個Fragment,大多數應用程式應該至少實現這三個方法,但是你也應該使用其它的回調方法來處理Fragment生命週期的各種狀態。全部的生命週期回調方法將在隨後的處理Fragment生命週期(Handing the Fragment Lifecycle)章節中進行更多的討論。
你可能想要擴充一些子類,而不是基於Fragment類:
DialogFragment
顯示一個浮動的對話方塊,使用這個類建立一個在Activity類中使用對話協助器的對話方塊是一個好的選擇,因為你能夠把一個Fragment對話方塊納入到Activity管理的Fragment的回退堆棧中,允許使用者返回到被廢止的Fragment。
ListFragment
顯示一個被類似ListActivity的適配器管理的項目列表(如SimpleCursorAdapter)。它為管理一個列表View提供幾個方法,如用來處理Click事件的onListItemClick()回調方法。
PreferenceFragment
顯示一個引用對象的層次樹列表,類似於PreferenceActivity。當給應用程式建立設定Activity時,這是有用的。
圖2 Fragment的生命週期(Activity正在運行時)