Android 10上带有taskAffinity和excludeFromRecents的问题

问题描述 投票:1回答:1

我有一个有时会向用户显示通知的应用程序。当按下通知时,将触发“派遣”活动,该活动会根据通知有效负载以某些意图调用startActivities,从而导致适当的活动。这是根据https://developer.android.com/training/notify-user/navigation#ExtendedNotification]在清单中声明的​​方式

            android:name=".DispatchActivity"
            android:taskAffinity=""
            android:excludeFromRecents="true"
            android:launchMode="singleTask" />

[当我按下通知时,在立即调用finish()之前,将使用DispatchActivity启动Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK并使用Intent.FLAG_ACTIVITY_NEW_TASK启动新的活动。如果我的应用程序已经启动,则新活动(简称为second Activity)将在先前已启动的活动之上启动,因此当您按“最近”按钮时,您只能看到我的应用一次。

enter image description here

enter image description here

这实际上是我想要的行为。问题是,当我在Android 10上运行相同的代码并按“最近”按钮时,我可以看到我的应用程序的两个实例(我猜是两个任务):

enter image description here

如果我再次按最近按钮以恢复第二个活动,它就消失了,而我只有最初的活动。仿佛SecondActivity从excludeFromRecents行为继承而来,而在其他Android版本上则不是(我什至在Android 11预览版上进行了测试,并且按预期运行)。

我尝试在清单中将taskAffinity=""DispatchActivity删除,因此它与应用程序中的其他活动具有相同的亲和力,但是当我收到未启动的应用程序的通知时,从DispatchActivity启动的活动会像最初那样消失时,我会遇到问题在Android 10上,因为excludeFromRecents标签。

我现在想法不清了,因此,如果您有任何解决方案,或者可能已经遇到问题,欢迎您提出建议。

谢谢!

这里是示例代码,如果需要:https://github.com/LoicJ/MultiTaskBugSample.git

我有一个有时会向用户显示通知的应用程序。当按下通知时,将触发“派遣”活动,该活动以某些意图调用startActivities导致...

android android-activity android-notifications android-task taskaffinity
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.