Android 通知未打开正确的活动

Android 通知未打开正确的活动,android,android-intent,android-notifications,android-pendingintent,firebase-cloud-messaging,Android,Android Intent,Android Notifications,Android Pendingintent,Firebase Cloud Messaging,我正在使用Firebase云消息传递,我有自己的类扩展了FirebaseMessagingService我的活动顺序如下: SplashActivity->MainActivity->DetailsActivity。当应用程序处于main活动中时,我使用Firebase控制台发送消息,一切正常,它会打开我想要打开的对话框。另外,当我在main活动中时,我发送了一条消息,打算打开DetailsActivity一切正常。 但是,当应用程序位于后台且我发送消息时,通知不会按预期显示,当我单击它时,它会

我正在使用Firebase云消息传递,我有自己的类扩展了
FirebaseMessagingService

我的活动顺序如下:
SplashActivity
->
MainActivity
->
DetailsActivity
。当应用程序处于
main活动中时
,我使用Firebase控制台发送消息,一切正常,它会打开我想要打开的
对话框。另外,当我在
main活动中时,我发送了一条消息,打算打开
DetailsActivity
一切正常。

但是,当应用程序位于后台且我发送消息时,
通知不会按预期显示,当我单击它时,它会首先打开
SplashActivity
,即使使用
pendinginContent
打开的定义的
Intent
MainActivity
。我如何解决这两个问题?


在我的自定义
FirebaseMessagingService
类中,我定义了使用以下标志的意图
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
和使用以下标志的pendingent.FLAG_UPDATE_CURRENT | pendingent.FLAG_ONE_SHOT
,但仍然没有工作。

检查您的FirebaseMessagingService中接收的消息的方法是否在后台正确调用,以便您可以设置所需内容

我必须发送数据消息而不是通知,因为当您发送类型通知时,后台不会调用OnMessageReceived方法,firebase会代替您处理推送通知。请注意,您甚至不能将类型通知和数据消息结合起来


有关数据消息的更多信息,您可以在此处找到

当应用程序位于后台时,不会调用onMessageReceived。只有在前台,才能在后台调用它。您必须发送数据消息,而不是通知。这两种类型之间的区别,你可以在我给你的回复中找到。简而言之,您必须将json中的通知参数重命名为datawow…这太糟糕了,不惜一切代价避免实现服务器。谢谢