Fragment的生命周期

Fragment生命周期

宿主MainActivity生命周期

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i("TAG", "MainActivity:---->onCreate方法執行啦");
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i("TAG", "MainActivity:---->onStart方法執行啦");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i("TAG", "MainActivity:---->onResume方法執行啦");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("TAG", "MainActivity:---->onPause方法執行啦");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("TAG", "MainActivity:---->onStop方法執行啦");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("TAG", "MainActivity:---->onDestroy方法執行啦");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("TAG", "MainActivity:---->onRestart方法執行啦");
    }
}

Fragmengs生命周期:

public class Fragments extends Fragment{
        /**
     * 表示當Activity與Fragment產生關聯的時候回調的方法 方法只能被調用一次
     */
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        Log.i("TAG", "Fragments------------>onAttach");
    }
    
    /**
     * 表示當Fragment被創建的時候回調的方法 該方法只會被創建一次
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i("TAG", "Fragments------------>onCreate");
    }
    
    /**
     * 表示fragment繪制用戶界面時回調的方法
     * 創建并返回與該Fragment相關聯的View視圖
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        Log.i("TAG", "Fragments------------>onCreateView");
        View view = inflater.inflate(R.layout.activity_fragments, container, false);
        return view;
    }
    
    /**
     * 表示當fragment所在的宿主Activity被啟動完成后回調的方法
     * 當宿主Activity的onCreate()方法返回之后調用該方法
     */
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Log.i("TAG", "Fragments------------>onActivityCreated");
    }
    
    /**
     * 當Fragment用戶可見的時候回調的方法
     */
    @Override
    public void onStart() {
        super.onStart();
        Log.i("TAG", "Fragments------------>onStart");
    }
    
    /**
     * 當Fragment獲取用戶焦點的時候回調的方法
     */
    @Override
    public void onResume() {
        super.onResume();
        Log.i("TAG", "Fragments------------>onResume");
    }
    
    /**
     * fragment失去用戶焦點
     */
    @Override
    public void onPause() {
        super.onPause();
        Log.i("TAG", "Fragments------------>onPause");
    }
    
    /**
     * 當Fragment用戶不可見的時候回調的方法
     */
    @Override
    public void onStop() {
        super.onStop();
        Log.i("TAG", "Fragments------------>onStop");
    }
    
    /**
     * 當fragment所包含的View組件被銷毀的時候回調的方法
     */
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        Log.i("TAG", "Fragments------------>onDestroyView");
    }
    
    /**
     * fragment被銷毀的時候回調的方法 該方法只會被調用一次
     */
    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.i("TAG", "Fragments------------>onDestroy");
    }
    
    /**
     * 當Fragment與Activity失去關聯的時候回調的方法 該方法只會被調用一次
     * onDestroy()后一定會調用onDetach()
     */
    @Override
    public void onDetach() {
        super.onDetach();
        Log.i("TAG", "Fragments------------>onDetach");
    }
}

activity_fragment布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:background="#50ff"
    android:orientation="vertical" >
    <TextView 
        android:layout_width="wrap_content"        
        android:layout_height="wrap_content"
        android:text="FragmentLifeStyle"
        />
</LinearLayout>

activity_main布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    >
    <fragment
        android:id="@+id/fragments"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="com.ljavadroid.day16_fragmentlifestyle.Fragments"
         />
</RelativeLayout>
MainActivity Fragments
onCreate() onAttach()
--- onCreate()
--- onCreateView()
--- onActivityCreated()
onStart() ---
--- onStart()
onResume() ---
--- onResume()
--- onPause()
onPause ---
--- onStop()
onStop() ---
onRestart() ---
onStart() ---
--- onStart()
onResume() ---
--- onResume()
--- onPause()
onPause() ---
--- onStop()
onStop() ---
--- onDestroy()
--- onDetach()
onDestroy() ---
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容