美文网首页
1112-Activity的affinity属性一

1112-Activity的affinity属性一

作者: 方衍 | 来源:发表于2016-11-13 13:09 被阅读41次

    affinity本意是“和什么相似/一样”,这个一样是针对任务栈而言,所以也翻译为“任务相关性”。

    affinity可以告诉所在的task,自己是这个task中的一员;拥有相同affinity的多个
    Activity在理论上同属于一个task,一个任务的affinity由根Activity的affinity值所决定

    也就是说,对于一个任务来说,其affinity值是由FirstActivity决定的。而我们一般并没有在FirstActivity的声明中设置taskAffinity属性,因此默认情况下,一个应用内的所有Activity都具有相同的affinity,都是从Application(参考<application>的taskAffinity属性)继承而来,而Application默认的affinity是<manifest>中的包名,我们可以为<application>设置taskAffinity属性值,这样可以应用到<application>下的所有<activity>,也可以单独为某个Activity设置taskAffinity。

    例如:在系统自带的Browser中,package为com.android.browser,但是<application>却自定义一个taskAffinity属性值:

    <application   android:name="Browser"  
                   android:label="@string/application_name"  
                   android:icon="@drawable/ic_launcher_browser"  
                   android:backupAgent=".BrowserBackupAgent"  
                   android:taskAffinity="android.task.browser" >  
    

    相关文章

      网友评论

          本文标题:1112-Activity的affinity属性一

          本文链接:https://www.haomeiwen.com/subject/ycrcpttx.html