我有两个应用程序,应用程序A和应用程序B,现在我想从应用程序A开始一个应用程序B中的活动,这个活动的启动模式是“singleTask”。
顺序:活动X(应用程序A) ->活动Y(应用程序B) -->活动Z(应用程序B,launchMode=“singleTask”)
作为默认的AndroidManifest配置,任务管理器中将显示两个应用程序,我希望用户只能在任务管理器中看到App标签,所以当他们在任务之间切换时,不会单击App。在Android11( Android )之前,我使用下面的属性taskAffinity来解决这个问题。
将活动X和活动Z都添加到AndroidManifet.xml中
android:taskAffinity="com.abc.xxx”
因此,这些活动可以同时容纳一个活动任务。在Android 10中,它可以工作.
然而,不再适用于Android11了。和,我没有发现任何与这个场景相关的新特性。
如何使应用程序A的活动任务包含以ApplicationB为启动模式的singleTask的活动?让用户只看到任务管理器中的一个任务(ApplicationA)。
发布于 2020-11-10 13:52:58
你不能。而且你不应该。它以前起作用的原因是taskAffinity压倒了launchMode。很明显,他们在Android 11中改变了/修正了这一点。
如果一个Activity被声明为singleTask,那么这就告诉Android,Activity希望在它自己的任务中成为根Activity。当您启动这个Activity时,应该在一个新任务中启动它,而不是进入与执行启动的Activity相同的任务。
在早期版本的Android中,如果Activity具有与启动任务的根Activity相同的taskAffinity,则Activity将被启动到相同的任务中。这一点从未被清楚地记录下来,因此不清楚这是"bug“还是”特性“。看起来他们终于在Android 11中改变了/修复了这一点。
见我对这些相关问题的回答:
https://stackoverflow.com/questions/64769530
复制相似问题