我正在构建一个聊天应用程序,可以像 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;
}
}
}
最佳答案
如果我正确理解你的问题,那么当收到推送通知时,你需要在非 UI 线程上进行工作。在这种情况下,你很幸运 - 正如所解释的 here ,onReceive()
在非 UI 线程上调用。
您只需创建并显示您认为合适的通知,并唯一存储通知 ID 以允许用户->通知映射。这样,您就可以访问同一用户发送另一条消息时显示的通知。
关于java - 如何使用 FCM 管理聊天应用程序的推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57451265/