zoukankan      html  css  js  c++  java
  • taskAffinity 和allowTaskReparenting的用途

    taskAffinity用于指定当前Activity(activity1)所关联的Task,allowTaskReparenting用于配置是否允许该activity可以更换从属task,通常情况二者连在一起使用,用于实现把一个应用程序的Activity移到另一个应用程序的Task中。


    allowTaskReparenting用来标记Activity能否从启动的Task移动到taskAffinity指定的Task,默认是继承至application中的allowTaskReparenting=false,如果为true,则表示可以更换;false表示不可以。

    引用网上的解释例子:

    一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来强制Activity移动到有着affinity的Task中。

    例如:

    在一个E-Mail邮件内容中,包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。但是这个Activity是由浏览器应用程序定义的,那么现在它作为e-mail Task(任务)的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见(上一次从邮件中打开的地址),并且,当e-mail Task再次进入前台时,就看不到它了。

    注解:

    1:点击邮件内容中的链接,会打开一个Activity显示这个链接,这个Activity是属于Android系统浏览器的。

    2.当显示这个链接的时候,点击Home键,让邮件App进入到后台中。

    3.点击浏览器应用程序,你会发现打开的浏览器程序显示的是,上一次从邮件中打开的链接页面。

    4.此时点击Home键,浏览器App进入到后台中。

    5.打开邮件App(注意我们没有关闭邮件App,而是让他进入到了后台中),你会发现那个显示链接的Activity不见了(因为他已经移动到浏览器的Task中了);

    参考地址:http://blog.csdn.net/einarzhang/article/details/6971878

    未完待续....

  • 相关阅读:
    http请求的GET和POST请求:查询和新增(server.php)
    http请求的GET和POST请求:查询和新增(ajax)
    shell中$(( )) 与 $( ) 还有${ }的区别
    linux查看操作系统版本信息
    Linux useradd 与 adduser的区别, /sbin/nologin 与 /bin/bash
    红帽触摸屏屏幕180旋转
    Sed命令n,N,d,D,p,P,h,H,g,G,x解析3
    sed命令
    sed高级用法:模式空间(pattern space)和保持空间(hold space)
    sed的模式空间和保持空间
  • 原文地址:https://www.cnblogs.com/ywtk/p/4151609.html
Copyright © 2011-2022 走看看