1、碎片的狀態和android
1.運行狀態git
當一個碎片是可見的,而且她所關聯的活動正處於運行狀態,該碎片就是運行狀態。github
2.暫停狀態微信
當一個活動那個進入暫停狀態(因爲另外一個未佔滿屏幕的活動被添加到棧頂),與它相關聯的可見碎片進入到暫停狀態。app
3.中止狀態ide
當一個活動進入到中止狀態的時候,與它相關聯的碎片就會進入到中止狀態。或者經過調用FragmentTransaction的remove()、replace()方法將碎片從活動中移除,但有在事務提交以前調用addToBackStack()方法,這時的碎片也就會進入到中止狀態。總的來講,進入到中止狀態的碎片對於用戶來講是徹底不可見的,有可能會被系統回收。佈局
4.銷燬狀態學習
碎片老是依附於活動而存在的,所以當活動被銷燬的時候,與它相關聯的碎片就會進入到銷燬狀態。或者經過調用FragmentTransaction的remove()、replace()方法將碎片從活動中移除,但有在事務提交以前並無調用addToBackStack()方法,這時的碎片也就會進入到中止狀態。大數據
2、額外的回調方法ui
1.toAttach()
當活動與碎片創建關聯的時候進行調用
2.onCreateView()
爲碎片建立視圖(加載佈局)時調用
3.onActivityCreated()
確保與碎片相關的試圖被移除的時候進行調用
4.onDestroyView()
當與碎片關聯的視圖被移除的時候進行調用。
5.onDetach()
當碎片與活動解除關聯的時候調用
碎片的完整生命週期圖例
package com.example.fragmenttest; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; 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,"onActivity"); } @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 onDestroy() { super.onDestroy(); Log.d(TAG,"onDestroy"); } @Override public void onDetach() { super.onDetach(); Log.d(TAG,"onDetach"); } }
3、源碼:
1.項目地址
https://github.com/ruigege66/Android/tree/master/FragmentTest
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料