Activity启动模式

作者: LiChengZe_Blog | 来源:发表于2019-06-03 21:41 被阅读0次

    启动模式的原理以及应用场景

    大家都知道启动模式是如何的应用的:

    第一种方式:

    在清单文件中直接注册:

    image

    第二种方式:

    通过Intent.setFlags(int flags)设置启动模式:

    image

    standard 标准模式 :

    每次启动一个Activity都会重新创建一个新的实例,不管这个实例是否以及存在,此模式的Activity默认会进入启动它的Activity所属的任务栈中。

    应用场景:默认的应用场景

    singleTop 栈顶复用模式:

    如果新Activity已经位于任务栈的栈顶,那么此Activity不会被重新创建,同时会回调onNewIntent方法,如果新Activity实例已经存在但不在栈顶,那么Activity依然会被重新创建;

    应用场景: 登录页面、WXPayEntryActivity、WXEntryActivity 、推送通知栏

    singleTask栈内复用模式

    只要Activity在一个任务栈中存在,那么多次启动此Activity都不会重新创建实例,并回调onNewIntent方法,此模式启动Activity A,系统首先会寻找是否存在A想要的任务栈,如果不存在,就会重新创建一个任务栈,然后把创建好A的实例放到栈中;

    应用场景:程序模块逻辑入口:主页面(Fragment的containerActivity)、WebView页面、扫一扫页面、电商中:购物界面,确认订单界面,付款界面

    singleInstance单实例模式

    如果哪一个activity设置了这种启动模式,那么只要一启动,就会把这个activity的实例放到一个独立的栈中,里面有且只有它自己一个实例, 以后如果还启动这个activity,将不会创建新的实例,而是把它所在的栈移动到最前面显示给用户看

    应用场景:系统Launcher、锁屏键、来电显示等系统应用

    相关文章

      网友评论

        本文标题:Activity启动模式

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