我正在使用Firebase云消息传递,我有自己的类FirebaseMessagingService
。
我的活动顺序如下:
SplashActivity
- > MainActivity
- > DetailsActivity
。当应用程序位于MainActivity
并且我使用Firebase控制台发送消息时,一切都很好,它会打开Dialog
我希望它打开。此外,当我在MainActivity
时,我发送了一条打开DetailsActivity
的消息,一切都很好。
但是当应用程序在后台并且我发送消息时,Notification
没有按预期显示,当我点击它时,它首先打开SplashActivity
,即使要定义的Intent
被打开使用PendingIntent
是MainActivity
。我怎么能解决这两个问题呢?
在我的自定义FirebaseMessagingService
类中,我已将Intent定义为具有以下标志Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
和我的PendingIntent以具有以下标志PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT
,但它仍然不起作用。
答案 0 :(得分:1)
检查 FirebaseMessagingServise 中的方法 onMessageReceived 是否已在后台正确调用,以便您可以设置所需内容。
我必须发送数据消息类型而不是通知,因为当您发送类型通知时,后台不会调用方法OnMessageReceived,而firebase会处理推送通知而不是您。请注意您不能甚至组合类型通知和数据消息。
有关您可以在此处找到的数据讯息的更多信息https://firebase.google.com/docs/cloud-messaging/concept-options