Android活动总共有6个核心状态,分别是onCreate(),onStart(),onResume,onPause(),onStop()和onDestroy()。
各状态之间的转换关系如下:
每个活动在其生命周期最多有种状态
- 运行状态
- 当该活动处于栈顶时为运行态
- 系统一般不会受该状态
- 暂停状态
- 不在栈顶位置,但仍然可见(例如被小窗口遮挡的活动)
- 只有在内存极低时才考虑回收该活动
- 停止状态
- 不再处于栈顶且完全不可见时
- ,系统会保留该活动的状态和成员变量,但当其他地方需要内存时,会回收(例如在任务窗口没正在运行的活动)
- 销毁状态
- 当活动从返回栈中被移除后,则变为销毁状态
- 系统比较倾向于回收该种状态的活动
活动的生存期
- onCreate
- 活动第一次被创建时调用
- 可以在这里加载布局,绑定事件
- onStart
- 在活动由不可见变可见时调用
- onResume
- 在准备好和用户进行交互时调用,此时活动一定处于栈顶,并且在运行态
- onPause
- 在系统准备去启动或者恢复另一个活动时调用
- 通常在该方法中释放消耗CPU的资源,以及保存关键数据
- onStop
- 在活动完全不可见时
- 和onPause的区别是,如果启动的新活动是对话框式的,那么onPause被执行
- onDestroy
- 当活动被销毁之前调用,之后活动会变成销毁状态
- onRestart
- 活动由停止到运行
活动的三种生存期
- 完整生存期
- create和destroy之间所经历的
- 在create完成初始化,在destroy完成释放内存
- 可见生存期
- start和stop之间所经历的
- 在start对资源进行加载,在stop 中对资源进行释放
- 前台生存期
- 在resume和pause之间所经历的
- 活动处于运行态