Activity的生命周期
Activity一共有7个生命周期方法,见下表
生命周期方法名 | 作用 |
---|---|
onCreate() | 创建Activity视图时调用 |
onStart() | Activity视图可见时调用 |
onResume() | Activity获取到焦点时用 |
onPause() | Activity失去焦点时调用 |
onStop() | Activity不可见时调用 |
onRestart() | Activity重启时调用 |
onDestory() | Activity销毁时调用 |
Fragment的生命周期
Fragment拥有和Activity相同的6个生命周期方法,没有onRestart(),除此之外还多了onAttach(),onCreateView(),onActivityCreated(),onDestoryView(),onDetach()这五个,所以Fragment一共有以下11个生命周期方法
生命周期方法名 | 作用 |
---|---|
onAttach() | 和依附的Activity建立关联时调用 |
onCreate() | Fragment创建时调用 |
onCreateView() | 加载Fragment的布局时调用 |
onActivityCreated() | 依附的Activity创建完毕时调用 |
onStart() | Fragment可见时调用 |
onResume() | Fragment获取焦点时用 |
onPause() | Fragment失去焦点时调用 |
onStop() | Fragment不可见时调用 |
onDestoryView() | 移除Fragment的布局时调用 |
onDestory() | Fragment销毁时调用 |
onDetach() | 与依附的Activity解除关联时调用 |
onSaveInstanceState()和onRestoreInstanceState()
至于这两个方法的作用就不过多介绍了,这里只是记录一下使用时的注意要点。
当你的View确定要save/restore状态的时候,一定要保证它有unique的id(即在XML布局中一定要给这个View的android:id
属性设置一个当前布局内的唯一id)!因为Android内部用id作为保存/恢复状态时使用的Key(SparseArray的key),否则就会发生一个覆盖另一个的悲剧而你却得不到任何提示或警告。
参考链接:
1. Activity和Fragment的生命周期
2. Android | Activity和Fragment最全生命周期
3. View树状态的保存、恢复过程分析
4. onSaveInstanceState执行时机