美文网首页
四种启动模式

四种启动模式

作者: 米花噗噗 | 来源:发表于2019-05-27 00:01 被阅读0次

    四种启动模式:

    (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具有独占性

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

    相关文章

      网友评论

          本文标题:四种启动模式

          本文链接:https://www.haomeiwen.com/subject/mwaftctx.html