我收到通知时,我的应用和活动位于最近的应用列表中。当我点击通知时,我希望通知的意图得到尊重。在我的情况下,我想重新启动活动(暴力)并传递新意图:所以,完成然后重新创建。我正在阅读FLAG_ACTIVITY_NEW_TASK
和FLAG_ACTIVITY_SINGLE_TOP
这样的标签,但我不太了解它们如何强制“完成然后重新创建我的活动。而且,哦,活动在问题是MainActivity。
GcmListenerService中的代码段使用
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
用于发送通知意图
替代地
如果我选择onNewIntent
事情变得复杂,因为可能会显示DialogFragments等等。我必须清除所有内容。这就是为什么完成然后重新创建对我来说似乎是最简单的解决方案。
答案 0 :(得分:0)
Intent标志FLAG_ACTIVITY_CLEAR_TOP应该产生所需的行为。 documentation for Tasks and Back Stack在使用Intent Flags部分中说明了这一点:
如果指定活动的启动模式是“标准”,它也是 从堆栈中删除,并在其位置启动一个新实例 处理传入的意图。那是因为一个新实例总是如此 当启动模式为“标准”时为新意图创建。
documentation for FLAG_ACTIVITY_CLEAR_TOP更详细地描述了相同的行为。