android activity 启动模式

android activity 启动模式

android 开发中,activity的启动模式有以下四种

standard

singleTask

singleInstance

singleTop

standard

标准启动模式,默认的,每次打开这个activity,都会创建一个新的实例添加到acitivty栈里。

singleTask

在同一个activity栈中只存在一个这个activity的实例,如果已经存在栈顶了,就不会创建新的了,如果不存在栈顶就会把在它上面的所有activity的实例出栈,将自己处于栈顶位置。

singleInstance

这个属于单例的情况,它不仅仅是在当前的activity栈内是单例的,而且也是全局单例的,当activity被标记为singleInstance的时候,本来启动它的activity在activity栈A中,当启动了它时,会创建一个新的activity栈B,把它的实例放在activity栈B中去

singleTop

singleTop的启动模式和standard非常类似,区别就是在当前的activity栈里,如果已经有一个这个activity的实例,并且处于栈顶位置,就不会创建新的这个activity的实例,但是如果不再栈顶,就会创建一个新的这个activity实例,并添加到栈顶,并不会影响之前创建的这个activity的实例。在当前的任务栈中如果没有这个activity的实例,就会创建一个,并添加到栈顶。

总结

在开发过程中,针对不同的activity页面,需要考虑不同的需求场景选择不同的启动模式,以达到最佳的用户体验。

发现的一些类似任务栈使用不当的案例

在早期的微信版本中,点击朋友圈可以打开2个或者多个(只要你手速够快,手机响应有够慢)朋友圈的页面。

android activity 启动模式

上一篇:Statement.execute()


下一篇:安卓绿色联盟6月绿色应用达标报告发布,四大类应用需提高警惕!