• Android-Activity四种启动模式


    Activity四种启动模式:

    (一)、基本描述
    1. standard:标准模式:如果在mainfest中不设置就默认standard;standard就是新建一个Activity就在栈中新建一个activity实例;
    2. singleTop:栈顶复用模式:与standard相比栈顶复用可以有效减少activity重复创建对资源的消耗,但是这要根据具体情况而定,不能一概而论;
    3. singleTask:栈内单例模式,栈内只有一个activity实例,栈内已存activity实例,在其他activity中start这个activity,Android直接把这个实例上面其他activity实例踢出栈GC掉;
    4. singleInstance :堆内单例:整个手机操作系统里面只有一个实例存在就是内存单例;
    (二)、场景设置

    Activity的启动模式的应用的设置是和它的开发场景有关系的,在APP中打开新的Activity的基本上分为两种情况:

    1. 目标Activity是本应用中的Activity,即它的启动模式是可以直接在fanifest中配置或者默认为standard,任务栈也可以自己随意设置;
    2. 目标Activity是第三方APP中的Activity,这个时候就需要先考虑打开新Activity的是和自己APP放在同一任务栈中还是新的task中【这个是很重要的因为在Android的机制中:同一个任务栈中的activity的生命周期是和这个task相关联的[具体实例见下文]】,然后考虑Activity的启动模式; 所以Android提供了优先级更高的设置方式在Intent.setFlags(int flags),通过这setFlags就可以为打开第三方的APP中Activity设置任务栈和启动模式了,具体设置就自己去看源码了。

    二、Activity四种启动模式常见使用场景:

    LauchModeInstance
    standard mainfest中没有配置就默认标准模式
    singleTop 登录页面、WXPayEntryActivity、WXEntryActivity 、推送通知栏
    singleTask 程序模块逻辑入口:主页面(Fragment的containerActivity)、WebView页面、扫一扫页面
    singleInstance 系统Launcher、锁屏键、来电显示等系统应用
  • 相关阅读:
    Git 几个常用操作
    Ubuntu16.04安装YouCompleteMe
    常用命令总结
    启动Kernel提示Bad Data CRC
    linux4.15.1编译init/mounts报错
    编译Linux-4.15.1内核时遇到:“error : openssl/bio.h :No such file or folder”
    添加mtdparts引起的问题
    arm-linux-ld:u-boot.lds:1: ignoring invalid character `#' in expression
    smartgit的安装
    ubuntu下安装wine
  • 原文地址:https://www.cnblogs.com/hustcser/p/9382005.html
Copyright © 2020-2023  润新知