Activity 的生命周期以及启动模式对于我们来说应该算是入门知识了,我这里也是重温知识的时候在顺手写个笔记,对于大部分人来说只要看个图就好了哈。
异常生命周期的触发情况
1. 资源相关的系统配置发生改变导致 Activity 被 kill 并重新创建
2. 资源内存不足导致低优先级的 Activity 被 kill
各个启动模式的区别
standard:标准模式,每次启动一个 Activity 都会重新创建一个新的实例,不管这个实例是否存在
singleTop:栈顶复用模式,如果新的 Activity 已经位于任务栈的栈顶,那么此 Activity 不会被重新创建,同时它的 onNewIntent() 方法被回调,但不会再次回调 onCreate(),onStart();如果 Activity 的实例已存在但不再栈顶,那么新的 Activity 仍然会重新创建
singleTask:栈内复用模式,只要 Activity 在一个栈中存在,那么多次启动此 Activity 都不会重新创建实例,然后回调 onNewInent(),并且压在该 Activity 之上的 Activity 都会被移出栈内
singleInstance:单实例模式,除了拥有 singleTask 的特性外,该模式只能单独的位于一个任务栈中。
各个启动模式的使用场景
singleTop:从外界可能多次跳转到一个界面
singleTask:之前打开过的页面,打开之前的页面就ok,不再新建
singleInstance:某个应用中用到了google地图,当退出该应用的时候,进入google地图,还是刚才的界面