Android开发艺术笔记
2017-10-14 本文已影响30人
b22523051261
一.Activity 生命周期与启动模式
- 1.1 正常下的生命周期
- 1.onCreate
- 2.onRestart -> onStart
从不可见到可见 - 3.onStart
从不可见到可见 - 4.onResume
从可见到可交互,
onStart的时候Activity还在后台,onResume的时候Activity才到前台 - onPause
存储状态(数据),轻量级回收
因为当新的Activity要启动时候,会先调用旧的Activity的onPause后再启动新Activity的onPause - onStop
即将变为不可见,重量级回收 - onDestroy
表示Activity被销毁,做资源释放 - 注意:
如果新Activity采用透明主题,当前Activity不会调用onStop
- 1.2 异常下的生命周期
- 1.原因
当系统资源不足或者配置发生改变的时候 - 2.当Activity被杀死重建后
被杀死Activity为A 新Activity为B (以下都采用A B代替)
调用方法 A.onSaveInstanceState() -> B.onRestoreInstanceState()
官方推荐 在onRestoreInstanceState 中恢复Activity的状态
同时,正常情况下不会调用 onRestoreInstanceState - 3.原理
当Activity被意外杀死时,调用onSaveInstanceState()保存数据,
然后委托Window去保存数据,Window再拜托顶级容器,顶级容器再拜托子元素保存 - 4.当内存不足导致Activity被杀死
当内存不足时会按照:
1.前台Activity 2.可见非前台 3.后台的顺序杀死Activity 回收资源
所以,后台工作尽量放在Service中运行.
- 1.原因