我的应用接收推送并根据推送类型打开不同的活动。
我在清单中使用android:parentActivityName
和 TaskStackBuilder
为挂起意图创建合成返回堆栈。
目前为止,一切都很容易。当应用程序未启动时,所有操作都按预期工作。但是如果应用程序在后台运行(任务正在运行),挂起意图也会使用来自清单的定义父项启动所需的活动,但会重置现有任务。问题是,同时由用户启动的其他活动也被清除了。
因此,我要实现的是:
- 如果应用程序未启动,则打开带有合成返回堆栈的所需活动(MainActivity)
- 如果应用程序正在运行,请尊重当前任务顺序,并将所需的活动推送到其顶部。
使用TaskStackBuilder
似乎无法使其正常工作。
我很乐意得到一些见解。
TaskStackBuilder
而是使用普通的Intent。这按预期工作,但我认为你的解决方案更优雅。我现在使用一个PushOpenActivity,通过普通Intent路由到真正的目标或构建活动堆栈。对于每个使用此解决方案的人,请记得在您的清单中将android:noHistory="true"
设置为此活动。 - JimVanB