【发布时间】:2016-06-20 19:40:55
【问题描述】:
我定义了 firebase 服务:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
public void onMessageReceived(com.google.firebase.messaging.RemoteMessage remoteMessage) {
mgr.showNotification("X:" + remoteMessage.getNotification().getTitle(), "X:" + remoteMessage.getNotification().getBody(), data);
}
@Override
public void onDeletedMessages() {}
@Override
public void onMessageSent(java.lang.String s) {}
@Override
public void onSendError(java.lang.String s, java.lang.Exception e) {}
}
还有 android 清单:
<service
android:name=".integration.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
我注意到 FCM 有两个非常奇怪的行为:
有时会调用 onMessageReceived(),有时不会。这取决于我的应用程序是否正在运行。无论如何,通知仍然显示(这就是我添加“X:”的原因)
有时没有通知,也没有调用 onMessageReceived,但我可以在开发者控制台的“FCM 诊断”中看到该消息已被确认:
Current Status Acknowledged Collapse Key <key> TTL 2,419,200 TIME CURRENT STATUS 20 Jun 17:35 Device connected 20 Jun 21:23 Accepted 20 Jun 21:23 Delivered 20 Jun 21:28 Acknowledged
谁能解释一下?
【问题讨论】:
-
您如何确定是否调用了 onMessageReceived? mgr.showNotification 有什么作用?
-
@Marcin 你有没有解决这个问题?
标签: android google-cloud-messaging firebase-cloud-messaging