Fragment生命周期的剖析篇一

Fragment的生命周期无疑是代码经常出错的关键,所以,我们有必要弄懂Fragment的使用场景和对应的场景才会调用的方法。

下面是Fragment的生命周期流程图:

这里写图片描述

注:onAttach()在fragment第一次与Activity产生关联时调用,以后不再调用;
保存数据时依然和Activity一样,调用onSaveInstanceState()方法记录下需要传递和保存的数据,然后在onCreateView()方法中读取保存的数据,如下例:

public class Demo3Fragment extends Fragment {

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Log.d("demoinfo", "Fragment onSaveInstanceState() 方法执行!");
        outState.putString("myinfo", "haha");
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        //创建 Fragment 中显示的 view, 其中 inflater 用来装载布局文件, container 表示 <fragment> 标签的父标签对应的 ViewGroup 对象,
        // savedInstanceState 可以获取 Fragment 保存的状态

        Log.d("demoinfo", "Fragment onCreateView() 方法执行!");

        if(null != savedInstanceState){
            Log.d("demoinfo", "保存了的数据: "+ savedInstanceState.getString("myinfo"));
        }else {
            Log.d("demoinfo", "没有保存的数据!");
        }

        View view = inflater.inflate(R.layout.fragment_demo3, container, false);

        return view;
    }
}

小结:Fragment中还有很多坑,这里需要点时间,过年开个小差,请静候篇X!

这里写图片描述

猜你喜欢

转载自blog.csdn.net/dota_wy/article/details/79335201
今日推荐