1112-Activity的affinity属性一

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" >  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容