zoukankan      html  css  js  c++  java
  • AndroidのActivity启动模式

    Activity启动模式
     
     
     .概念
      
      Activity启动模式定义了Activity启动的规则,它决定着Activity的实例创建与重用与否
     
     .属性
     
      Activity的启动模式在menifest.xml中的<activity>标签中设置,属性为launchMode
     
     .分类
     
      Activity的启动模式分为四类: standard 、 singleTop 、 singleTask 、 singleInstance
      
     .备注
     
      Android采用Task来管理不同的Activity。当启动一个Activity时,系统会先创建一个Task, 然后再启动这 个Activity的入口。我们可以把Task理解为   栈。
     
     
     .Standard(标准模式)
     
     设置:系统默认的模式,可不设置 
     特点:每次创建Activity,都会新建一个Activity对象,并置顶
     示例:从Activity A跳转到Activity B,再跳转到ActicityA,则栈为: A -> B -> A
     
     
     .SingleTop(栈顶单例模式)
     
     设置:launchMode = "singleTop"
     特点:检查栈顶元素是否为当前Activity,如果是,则复用;如果不是,则新建Activity,置顶
     示例:当前栈为: A -> B -> C,当前栈顶为C,如果跳转到C,则复用C,栈为: A -> B -> C
     
     .SingleTask (全栈单例模式)
     
     设置:launchMode = "singleTask"
     特点:检查全栈元素是否有当前Activity,如果有,则使在该Activity之上的Activity出栈,使其置顶      
     示例:当前栈为: A -> B -> C -> D,如果跳转到B,则C、D出栈,栈为: A -> B   
     
     .SingleInstance(系统单例模式)
     
     设置:launchMode = "singleInstance"
     特点:系统范围检查是否存在该Activity,如果存在,则复用
     
     
     从上述总结
     
     相同点:目标Activity均须置顶
     
     不同点:  Standard 每次都新建Activity实例 
     
               SingleTop/SingleTask则先检查是否存在该Activity,存在则复用
     
               SingleTop由于栈顶操作,不须置顶;SingleTask须出栈置顶
     
               SingleTop/SingleTask都是实现栈内单例
     
               SingleInstance则是实现系统单例 
     
               SingleTask/SingleTop模式,均会调用onNewIntent()     
     
         
         
     
  • 相关阅读:
    Halcon学习(车牌识别)
    Keil新建STM32工程(LED灯)
    Keil新建STM32工程(LED灯)
    Keil STM32F4xx_DFP.1.0.8.pack下载链接
    android 如何单独编译 img及作用
    Linux绑定硬件IRQ到指定SOC的CPU核
    sysrq: SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f)
    内核线程同步之completion
    kmalloc,vmalloc , malloc
    ARMv8 与 Linux的新手笔记(转载)
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5409011.html
Copyright © 2011-2022 走看看