加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.cn/)- 图像处理、低代码、云通信、数据工具、物联设备!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

LaunchMode解析

发布时间:2020-11-05 13:30:14 所属栏目:经验 来源:互联网
导读:singleTop singleTop整体的行为与standard一致,区别如下: 当Activity在入栈时,singleTop会检测当前task的栈顶Activity,如果当前的栈顶Activity与要压入的Activity是同一个Activity时,那么就不会创建Activity 新 的实例,而是会直接使用当前的栈顶Activity, 被

singleTop

singleTop整体的行为与standard一致,区别如下:

  • 当Activity在入栈时,singleTop会检测当前task的栈顶Activity,如果当前的栈顶Activity与要压入的Activity是同一个Activity时,那么就不会创建Activity的实例,而是会直接使用当前的栈顶Activity,
  • 被标记为singleTask的Activity可以让该Activity在被别的Activity启动时,不会进入启动他的Task中,而是会在属于它自己的Task里创建,并放在栈顶, 然后把整个Task一起拿过来,压在启动Task上.

    是否在当前Task中启动Activity,主要看taskAffinity:

    • 如果新的Activity的taskAffinity和当前Task相同,就继续在当前Task启动
    • 如果不同,就换到别的Task,如果有则利用那个task,如果没有就创建一个,找到对应task后:
      • 如果目标Task里没有目标Activity,创建Activity,入栈
      • 如果目标Task中已有目标Activity,那么就将这个栈中在目标Activity上面的Activity全部销毁,让目标Activity出现在栈顶,然后调用他的onNewIntent()方法
      • 返回键

        当点击Android中的返回键时,Android会按照以下逻辑进行执行:

        1. 对当前task执行出栈的操作,显示出当前task的上一个Activity
        2. 如果当前task执行出栈后,没有其他Activity,则销毁这个task,但是并不会销毁其在多任务页面的快照
          1. 当前task销毁后,如果有其他前台task,则会切换到上一个前台task
          2. 当前task销毁后,如果没有其他前台task,则会直接显示Home
          3. 实战选择

            • standard和singleTop多用于App内部
            • singleInstance:多用于开放给外部App来共享使用
            • singleTask:内部交互和外部交互都会用得上

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读