Android的fragment生命周期

fragment生命周期图解
fragment生命周期

fragment与activity对应的生命周期
fragment与activity对比图

场景演示 :
切换到该Fragment
onAttach->onCreate->onCreateView->onActivityCreated
->onStart-> onResume

屏幕灭掉:
onPause->onSaveInstanceState->onStop

屏幕解锁

切换到其他Fragment:
onPause->onStop->onDestroyView

切换回本身的Fragment:
onCreateView->onActivityCreated->onStart->onResume

回到桌面
onPause->onSaveInstanceState->onStop

回到应用
onStart-> onResume

退出应用
onPause->onStop->onDestroyView->onDestroy->onDetach

fragment知识点:

  1. fragment不能独立存在,它必须嵌入到 activity 中,而且 Fragment 的生命周期直接受所在的 activity 的影响,对于一个activity有多个页面的需求时,可以使用fragment。
  2. fragment是受activity生命周期影响,但在它所属activity处于onPause和onStop之间,是可以对其生命周期进行操作
  3. fragment的简单操作:
    (1) 先定义一个viewgroup装载fragment,如
    <FrameLayout
        android:id="@+id/fragmentcontainer"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    </FrameLayout>
(2)利用Activity的getSupportFragmentManager()方法得到FragmentManager对象,再从FragmentManager对象的beginTransaction()方法得到FragmentTransaction对象,利用FragmentTransaction对象对fragment进行操作(add(),remove(),replace()等方法),操作完成后需要调用commit()方法。具体如下:
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction(); 
        //添加一个fragment
            ft.add(R.id.fragmentcontainer, fragment);
        //显示某个fragment
            ft.show(fragment);
        //隐藏某个fragment
            ft.hide(fragment);
        //删除某个fragment
            ft.remove(fragment);
            ....
        //最后要commit()
            ft.commit():

以上是本人对fragment的一些理解,欢迎纠错补充。

猜你喜欢

转载自blog.csdn.net/seasonLai/article/details/52239276