单实例活动的任务亲和性?

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 是来自清单&lt;package&gt; 标记的应用程序包名称。

这适用于所有活动,无论启动模式是什么。

这就是为什么很多开发者在使用特殊启动模式singleInstancesingleTask时遇到问题的原因,因为taskAffinity胜过启动模式,所以有时这些活动不会在新任务中启动,而是简单地启动到现有任务好像启动模式是“标准”。

【讨论】:

以上是关于单实例活动的任务亲和性?的主要内容,如果未能解决你的问题,请参考以下文章

单实例应用程序

使用 Mutex 的 C++/CLI 中的单实例应用程序

单例模式的理解

Oracle安装卸载任务

第3天 一篇MHA安装(单实例)

接上一篇中记录Echarts进度环使用不同状态不同进度环颜色及圈内文字--采用单实例业务进行说明