affinity本意是“和什么相似/一樣”弊琴,這個(gè)一樣是針對(duì)任務(wù)棧而言文捶,所以也翻譯為“任務(wù)相關(guān)性”宛官。
affinity可以告訴所在的task,自己是這個(gè)task中的一員凶杖;擁有相同affinity的多個(gè)
Activity在理論上同屬于一個(gè)task胁艰,一個(gè)任務(wù)的affinity由根Activity的affinity值所決定。
也就是說(shuō),對(duì)于一個(gè)任務(wù)來(lái)說(shuō)腾么,其affinity值是由FirstActivity決定的奈梳。而我們一般并沒(méi)有在FirstActivity的聲明中設(shè)置taskAffinity屬性,因此默認(rèn)情況下解虱,一個(gè)應(yīng)用內(nèi)的所有Activity都具有相同的affinity攘须,都是從Application(參考<application>的taskAffinity屬性)繼承而來(lái),而Application默認(rèn)的affinity是<manifest>中的包名饭寺,我們可以為<application>設(shè)置taskAffinity屬性值阻课,這樣可以應(yīng)用到<application>下的所有<activity>,也可以單獨(dú)為某個(gè)Activity設(shè)置taskAffinity艰匙。
例如:在系統(tǒng)自帶的Browser中限煞,package為com.android.browser,但是<application>卻自定義一個(gè)taskAffinity屬性值:
<application android:name="Browser"
android:label="@string/application_name"
android:icon="@drawable/ic_launcher_browser"
android:backupAgent=".BrowserBackupAgent"
android:taskAffinity="android.task.browser" >