【发布时间】:2019-08-11 15:26:06
【问题描述】:
我正在构建一个推送通知的聊天应用程序,例如 facebook、Instagram。 当用户发送消息通知将自动显示。问题是我不知道如何处理后台服务。
例如,当同一用户发送消息时,通知将附加消息如下:
但是当 FCM 发送通知时发生了这样的事情:
我需要能够处理后台服务
这是我的代码
public class FirebaseInstaceService extends FirebaseMessagingService {
FirebaseToken firebaseToken = new FirebaseToken();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d("NewToken","New token: " +s);
if (user != null){
firebaseToken.sendToken(s, new OncompleteCallback() {
@Override
public void callback() {
Log.d("NewToken","Send complete");
}
});
}
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
try {
Log.d("CloudMessage",remoteMessage.getNotification().getBody());
}catch (Exception e){
Log.d("CloudMessage",e.toString());
throw e;
}
}
}
【问题讨论】:
-
不清楚
handle background service是什么意思。你能解释一下吗 -
如上图所示,FCM 使用后台服务自动创建推送通知,所以我对此无能为力。例如,当同一个用户发送消息时,我需要在同一个通知中附加一条消息,但后台服务会自动创建一个新的,谢谢
-
FCM 的默认行为取决于您在推送负载中发送的数据。如果您在有效负载中有数据密钥,则始终会调用 onMessageReceived。 firebase.google.com/docs/cloud-messaging/…
标签: java android firebase-cloud-messaging android-service