单实例活动的任务亲和性?
Posted
技术标签:
【中文标题】单实例活动的任务亲和性?【英文标题】:task affinity for singleInstance activity? 【发布时间】:2019-10-14 14:05:54 【问题描述】:我想知道 singleInstance 活动的默认任务亲和性是什么?
由于每个 singleInstance Activity 在新任务中都作为根 Activity 打开。 并且不需要声明 android:taskAffinity。
请参阅我已阅读 Android 活动的开发人员指南和文档。
https://developer.android.com/guide/components/activities/tasks-and-back-stack 和 https://developer.android.com/guide/topics/manifest/activity-element.html#aff
<activity android:name=".MainActivity"
android:launchMode="singleInstance"
>
</activity>
我想知道 taskAffinity - singleInstance 活动作为根驻留在其中的任务的字符串文字。
【问题讨论】:
taskAffinity 用于指定 Activity 喜欢运行的任务的名称。当您使用 FLAG_ACTIVITY_NEW_TASK 有意图时,Activity 被放入由 taskAffinity 定义的任务中。 是的@Rajnishsuryavanshi 我同意你的观点,因为我们知道如果没有定义关联,那么默认关联等于清单中定义的包名称。但是在 singleInstance 活动的情况下,它默认在新任务中启动,那么这个新任务的亲和力值是多少?那是我的问题。希望它会有所帮助。 我会推荐你看这个视频。这将对您有所帮助。 youtube.com/… 【参考方案1】:默认的taskAffinity
是来自清单<package>
标记的应用程序包名称。
这适用于所有活动,无论启动模式是什么。
这就是为什么很多开发者在使用特殊启动模式singleInstance
和singleTask
时遇到问题的原因,因为taskAffinity
胜过启动模式,所以有时这些活动不会在新任务中启动,而是简单地启动到现有任务好像启动模式是“标准”。
【讨论】:
以上是关于单实例活动的任务亲和性?的主要内容,如果未能解决你的问题,请参考以下文章