与Activity类似的是,Fragment也存在如下状态。
- 活动状态:当前Fragment位于前台,用户可见,可以获得焦点。
- 暂停状态:其他Activity位于前台,该Fragment依然可见,只是不能获得焦点。
- 停止状态:让Fragment不可见,失去焦点。
- 销毁状态:该Fragment被完全删除,或该Fragment所在的Activity被结束。
图4.31(来自Android官方文档)显示了Fragment生命周期及其相关回调方法。
从图4.31可以看出,在Fragment的生命周期中,如下方法会被系统回调。
- onAttach():当该Fragment被添加到Activity时被回调。该方法只会被调用一次。
- onCreate(Bundle savedStatus):创建Fragment时被回调。该方法只会被调用一次。
- onCreateView():每次创建、绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View组件。
- onActivityCreated():当Fragment所在的Activity被启动完成后回调该方法。
- onStart():启动Fragment时被回调。
- onResume():恢复Fragment时被回调,onStart()方法后一定会回调onResume()方法。
- onPause():暂停Fragment时被回调。
- onStop():停止Fragment时被回调。
- onDestoryView():销毁该Fragment所包含的View组件时调用。
- onDestory():销毁Fragment时被回调。该方法只会被调用一次。
- onDetach():将该Fragment从Activity中被删除、被替换完成时回调该方法,onDestory()方法后一定会回调onDetach()方法。该方法只会被调用一次。