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

    未完待续....

  • 相关阅读:
    675 对象的引用-浅拷贝-深拷贝
    674 vue3侦听器watch
    673 vue计算属性:缓存,setter和getter
    明明有了promise,为啥还需要async await?
    Js常用数组方法汇总
    一些非常有用的Js单行代码
    Js获取验证码倒计时
    前端截取字符串:JS截取字符串之substring、substr和slice详解
    javascript全局变量与局部变量
    JS实现快速排序算法
  • 原文地址:https://www.cnblogs.com/ywtk/p/4151609.html
Copyright © 2011-2022 走看看