一、碎片的狀態和
1.運行狀態
當一個碎片是可見的,并且她所關聯的活動正處于運行狀態,該碎片就是運行?狀態,
2.暫停狀態
當一個活動那個進入暫停狀態(由于另一個未占滿螢屏的活動被添加到堆疊頂),與它相關聯的?可見碎片進入到暫停狀態,
3.停止狀態
當一個活動進入到停止狀態的時候,與它相關聯的碎片就會進入到停止狀態,或者通過呼叫FragmentTransaction的remove()、replace()方法將碎片從活動中移除,但有在事務提交之前呼叫addToBackStack()方法,這時的碎片也就會進入到停止狀態,總的來說,進入到停止狀態的碎片對于用戶來說是完全不可見的,有可能會被?系統回收,
4.銷毀狀態
碎片總是依附于活動而存在的,因此當活動被銷毀的時候,與它相關聯的碎片就會進入到銷毀狀態?,或者通過呼叫FragmentTransaction的remove()、replace()方法將碎片從活動中移除,但有在事務提交之前并沒有呼叫addToBackStack()方法,這時的碎片也就會進入到停止狀態,
二、額外的回呼方法
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"); } }
三、原始碼:
1.專案地址
https://github.com/ruigege66/Android/tree/master/FragmentTest?
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公眾號:傅里葉變換,個人公眾號,僅用于學習交流,后臺回復”禮包“,獲取大資料學習資料

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/4144.html
標籤:Android
