Android activity启动模式以及相关知识
启动模式
activity新手看似简单,但实际上却还有较为复杂的问题。activity的启动模式有四种 分别为 standard singleTop singleTask singleinstance
标准模式 standard
这个是最为常用的,默认的启动方式,可以在栈内重复创建activity
栈顶模式 singletop
如果创建activity时栈顶已经有activity的实例了,则不创建新的activity
栈中模式 singleTask
和栈顶模式类似,但是判断activity是否重建在栈中。
singleInstance
这是一种非常特殊的activity启动模式,会在不同于当前栈的新栈之中创建activity,新栈只会有目标activity,在点击回退键时,栈只会清除存在于本栈的activity
而对于其他栈,则是在本栈全部退出后,后台运行的stack会回到前台成为前台栈。
activity动态启动模式
activity动态启动模式优先级是高于上文的静态启动模式的,上文的启动模式是在manifest中设置,而动态启动模式则是在
intent的addflage方法中添加,一般包括有以下几种方式,这几种方式是可以多个添加的,多个添加效果也不同,一般设置SINGLE_TOP和CLEAR_TOP
的效果类似于singleTask。
- NEW_TASK
- SINGLE_TOP
- CLEAR_TOP
activity的启动还可以分为显示启动和隐式启动
隐式启动需要在manifest设置action和categories两种属性,如果需要还可以设置data属性,这种启动方式一般用在启动其他的activity中,
例如拉起支付界面等,