Fragment-初識_生命週期

Fragment(碎片)允許將Acitivity拆分成多個完全獨立封裝的可重用的組件,每個組件有它自己的生命週期和UI佈局。

Fragemnt最大的優點就是你可以爲不同頻幕大小的設備創建動態靈活的佈局。

 

Fragment生命週期事件處理程序:

 

//調用該方法時Fragment會被連接到它的父Activity上
 @Override
 public void onAttach(Activity activity) {
  super.onAttach(activity);
  //獲取對父Activity的引用
 }
 
 //調用該方法來進行Fragment的初始創建
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  //初始化Fragment
 }
 
 //一旦Fragment已被創建,要創建它的用戶界面時調用該方法
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  View inflate = inflater.inflate(R.layout.layout_myfragment, null);
  //找到對應的佈局
  return inflate;
 }
 
 //一旦父Activity和Fragment的UI已被創建,則調用該方法
 @Override
 public void onActivityCreated(Bundle savedInstanceState) {
  super.onActivityCreated(savedInstanceState);
  //完成Fragment的初始化--尤其是那些父Acitivity被初始化完成後或者Fragment的View被完全填充後才能做的事情
 }
 
 //在可見生命週期的開始時被調用
 @Override
 public void onStart() {
  super.onStart();
  //現在Fragment是可見的
 }
 
 //在活動生命週期的開始時被調用
 @Override
 public void onResume() {
  super.onResume();
  //恢復所有暫停的Fragment需要的UI更新,線程或進程,但在非活動狀態它是暫停的
 }
 
 //在活動生命週期的結束時被調用
 @Override
 public void onPause() {
  super.onPause();
  //當Activity不是活動的前臺Activity時,需要暫停UI的更新、掛起線程或者暫停那些不需要更新的CPU的集中處理。由於
  //調用這個方法後,進程可能被終止,所以要保護所有的編輯和狀態改變信息
 }
 
 //在活動生命週期結束時,調用該方法去保護UI的狀態變化
 @Override
 public void onSaveInstanceState(Bundle outState) {
  super.onSaveInstanceState(outState);
  //將UI的狀態改變信息保存到savedInstanceState中
  //這個Bundle會被傳遞到onCreate、onCreateView和OnActivityCrete(如果它的父Activity被終止並且重新啓動)方法中
 }
 
 //在可見生命週期結束時調用該方法
 @Override
 public void onStop() {
  super.onStop();
  //當Fragment不可見時,暫停其餘的UI更新、掛起線程或者暫停不再需要的處理
 }
 
 //當Fragment的View被分離時,調用該方法
 @Override
 public void onDestroyView() {
  super.onDestroyView();
  //清除資源相關的View
 }
 
 //在整個生命週期結束時調用該方法
 @Override
 public void onDestroy() {
  super.onDestroy();
  //清除所有的資源,包括結束線程和關閉數據庫連接等
 }
 
 //當Fragment從它的父Activity上分離時,調用該方法
 @Override
 public void onDetach() {
  super.onDetach();
 }

 

生命週期圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章