四种启动模式

四种启动模式:

(1) . Standard(标准模式)---系统默认的模式

①在不指定的情况下,系统会默认使用该模式的启动方式

②每次启动一个Activity,都会创建一个Activity实例,会将他方法任务栈的顶部考虑是否存在,就算栈中有Activity,都不会去关心,仍旧会创建Activity实例

③onCreate()-->onStart()-->onResume()每次被启动的时候都会被调用

(2)。SingleTop(栈顶模式)也称 ”栈顶复用”

①如果有新的Activity存在在任务栈的栈顶时,那么Activity就不会重新创建,而是去复用已存在再任务栈栈顶的那个Activity。

如果用singleTop的模式去启动Activity,也不会去重新创建,而是去复用

②如果想要开启一个MainActivity的时候确发现MainActivity确不在栈顶而是OtherActivity在栈顶,这时候尽管是用SingleTop的模式去启动MaingleActivity,但是由于不在顶部,那么就会和标准模式一样回去重新创建一个新的Activity

③当前栈中不存在该Activity的实例时,那么就会和标准模式一样


(3)singTask(栈的复用)  也称单例模式

检测的是整个栈中是否存在要启动的MainActivity,如果存在就直接将MainActivityy放到栈顶,然而MainActivity上面的其他的Activity都会被销毁


由上图可只MainActivity在底部的时候系统会将MainActivity放于栈顶,同时会将上方的Activity移除

总结而言:

(1).singTask会根据taskAffiity去寻找当前是否存在一个对应名字的任务栈

singTask是任务相关性

(2) 如果不存在就会创建一个新的Task

(3) 如果存在就得到该任务栈,查找它里面是都存在实例对象

应用场景:应用的主界面


(4).SingleInstance

(1).SingleInstance模式下启动的Activity具有全局唯一性

(2) 如果在启动这样的Activity时,系统这个时候就是单利的,说明就已经存在了一个实例

(3) .SingleInstance模式下启动的Activity具有独占性

独占性就是会独自占用一个任务栈,

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容