Android :fragment生命週期

來源:互聯網
上載者:User

標籤:

一、關於Fragmemt

1、安卓系統3.0介紹了Fragment,主要是為了支援更多的動態和靈活的使用者介面設計,如平板電腦。Fragment允許組合和交換使用者介面組件,而不需要更改視圖階層。通過擺個Activity的布局劃分成Fragment,可以再運行時修改Activity的外觀,並保留在Activity堆棧中的更改。

2、Fragment表示Activity中的使用者介面的行為或部分。可以將多個Fragment組合在一個Activity中,以構建多窗格使用者介面,並在多個活動中重用Fragment。可以把Fragment當作一個Activity的模組部分,它有自己的生命週期,接受自己的輸入事件,你可以在Activity正在運行時添加或刪除。

3、一個Fragment必須始終嵌在一個Activity中,該片段的生命週期直接受宿主Activity的生命週期的影響。例如,當Activity暫停時,所有的Fragment都是這樣,當Activity被破壞時,所有的Fragment都被破壞。然而,當一個Activity正在運行,可以獨立操作每一個Fragment,如添加刪除它們。

 

二、Fragment生命週期圖解

1. 當一個fragment被建立的時候,它會經曆以下狀態.

  • onAttach()
  • onCreate()
  • onCreateView()
  • onActivityCreated()

2. 當這個fragment對使用者可見的時候,它會經曆以下狀態。

  • onStart()
  • onResume()

3. 當這個fragment進入“後台模式”的時候,它會經曆以下狀態。

  • onPause()
  • onStop()

4. 當這個fragment被銷毀了(或者持有它的activity被銷毀了),它會經曆以下狀態。

  • onPause()
  • onStop()
  • onDestroyView()
  • onDestroy()
  • onDetach()

 

三、建立Fragment

要建立一個Fragment,你必須建立一個Fragment的子類(或它的一個現有的子類)。

Fragment類的代碼看起來很像一個Activity。它含有類似於Activity的回調方法,如oncreate(),onstart(),onpause(),和onstop()。

事實上,如果你將一個現有的安卓應用程式轉換為使用Fragment,你可能會將代碼從Activity的回調方法轉移到你的Fragment的相應的回調方法中。

通常,你應該至少實現以下生命週期方法:
oncreate()
當建立該Fragment時,該系統調用該。在你的實現中,你應該對你想要保留的Fragment進行初始化,然後在暫停或停止的時候,然後重新開始。

oncreateview()
該系統調用這個時候,以繪製其使用者介面的第一次。要為你的Fragment繪製一個使用者介面,你必須從這個方法中返回一個視圖,這是你的Fragment布局的根。如果Fragment不提供使用者介面,您可以返回null。

onpause()
該系統將該方法稱為使用者離開該Fragment(雖然並不總是意味著該Fragment被銷毀);通常您應該提交目前使用者所做的任何更改(因為使用者可能不會回來)。

執行個體代碼如下:

public class PhoneFragment extends Fragment {    @Override    public void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);    }    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,        Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_phone, container, false);        return view;    }        @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);    }        @Override    public void onDestroy() {        super.onDestroy();    }}

 

Android :fragment生命週期

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.