用户点击FCM通知消息时如何清除活动堆栈?

时间:2018-09-23 11:51:51

标签: android android-intent firebase-cloud-messaging activity-stack

我的Android应用从网络服务器接收FCM通知消息(显示消息)。

如果在应用程序处于后台模式时通知到达,并且用户点击它,则会在任务堆栈顶部启动一个新的“ MainActivity”。然后,当用户点击“后退”按钮时,此活动完成,并显示上一次启动的活动(在点击通知之前)。

我想要的是在用户点击通知时清除所有活动堆栈。这样,当用户点击后退按钮时,应用程序将完成,并保留Activity层次结构。

如果我按照here来管理意图启动,这可能很容易,但是如FCM Message types docs所述,显示消息是由FCM SDK自动处理的,因此在这种情况下,我不会创建任何意图;当点击通知时,android会自动启动“ MainActivity”。

那么,有什么方法可以实现?

2 个答案:

答案 0 :(得分:1)

<activity
android:name=".MainActivity"
android:launchMode="singleTop">

将以下内容添加到清单文件中。 https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en

答案 1 :(得分:0)

对我来说,这很完美:

<activity
android:name=".MainActivity"
android:clearTaskOnLaunch="true"
android:launchMode="singleTask">