我知道有很多关于这个话题的问题,但我的问题有点不同 .
我正在使用 Firebase Cloud 消息来通知客户端某个操作 . 当应用程序被杀或处于后台时,就我正在进行调试时,我可以看到当设备收到通知时 onMessageReceived 方法没有被触发时,我有类 FCMNotificationIntentService extends FirebaseMessagingService {...}
,方法 onMessageReceived 是找到并只是一个默认构造函数,如:
public class FCMNotificationIntentService extends FirebaseMessagingService {
public FCMNotificationIntentService() {
super();
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
sendNotification(remoteMessage);
}
//other methods and stuff...
}
因此,当设备收到通知时,它不会触发 onMessageReceived 而只触发构造函数,这意味着通知将在没有数据的情况下进入设备 . 为什么会发生这种情况,当应用程序处于前台时,始终会触发 onMessageReceived 并且有来自服务器的数据 .
任何建议或想法都非常感谢 .
2 回答
您是否覆盖onNewToken并且是否将令牌发送到服务器以允许与设备进行通信?在您的服务类中添加:
你可以参考这个https://github.com/firebase/quickstart-android/issues/548
试试这个工作代码吧