Android温习 —— Activity和Fragment的生命周期

Activity的生命周期

Activity一共有7个生命周期方法,见下表

生命周期方法名 作用
onCreate() 创建Activity视图时调用
onStart() Activity视图可见时调用
onResume() Activity获取到焦点时用
onPause() Activity失去焦点时调用
onStop() Activity不可见时调用
onRestart() Activity重启时调用
onDestory() Activity销毁时调用

Android温习 —— Activity和Fragment的生命周期_第1张图片

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解除关联时调用

Android温习 —— Activity和Fragment的生命周期_第2张图片

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执行时机

你可能感兴趣的:(基础知识)