[Android] Fragment 的生命周期

来源:互联网 发布:mac air怎么安装双系统 编辑:程序博客网 时间:2024/05/16 15:59

和Activity一样,Fragment也有自己的生命周期,理解Fragment的生命周期非常重要。
通过代码我们来看看Fragment的生命周期是什么样的:

public class Fragment1 extends Fragment {    public static final String TAG = "Fragment";    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        Log.d(TAG, "onCreateView");        return inflater.inflate(R.layout.fragment1, container, false);    }    @Override    public void onAttach(Activity activity) {        super.onAttach(activity);        Log.d(TAG, "onAttach");    }    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Log.d(TAG, "onCreate");    }    @Override    public void onActivityCreated(Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        Log.d(TAG, "onActivityCreated");    }    @Override    public void onStart() {        super.onStart();        Log.d(TAG, "onStart");    }    @Override    public void onResume() {        super.onResume();        Log.d(TAG, "onResume");    }    @Override    public void onPause() {        super.onPause();        Log.d(TAG, "onPause");    }    @Override    public void onStop() {        super.onStop();        Log.d(TAG, "onStop");    }    @Override    public void onDestroyView() {        super.onDestroyView();        Log.d(TAG, "onDestroyView");    }    @Override    public void onDestroy() {        super.onDestroy();        Log.d(TAG, "onDestroy");    }    @Override    public void onDetach() {        super.onDetach();        Log.d(TAG, "onDetach");    }}

运行一下程序,可以看到打印日志如下:

这时点击一下home键,打印日志如下:

如果你再重新进入进入程序,打印日志如下:

然后点击back键退出程序,打印日志如下:

看到这里,我相信大多数朋友已经非常明白了,因为这和Activity的生命周期太相似了。只是有几个Activity中没有的新方法,这里需要重点介绍一下:

  • onAttach方法:Fragment和Activity建立关联的时候调用。
  • onCreateView方法:为Fragment加载布局时调用。
  • onActivityCreated方法:当Activity中的onCreate方法执行完后调用。
  • onDestroyView方法:Fragment中的布局被移除时调用。
  • onDetach方法:Fragment和Activity解除关联的时候调用。
0 0
原创粉丝点击