java - 如何使用 FCM 管理聊天应用程序的推送通知

标签 java android firebase-cloud-messaging android-service

我正在构建一个聊天应用程序,可以像 Facebook、Instagram 一样推送通知。 当用户发送消息时,将自动显示通知。问题是我不知道如何处理后台服务。

例如,当同一用户发送消息时,通知将附加如下消息:

Image Notificaiton

但是当 FCM 发送通知时,发生了以下情况:

My notification

我需要能够处理后台服务

这是我的代码

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 线程上进行工作。在这种情况下,你很幸运 - 正如所解释的 hereonReceive() 在非 UI 线程上调用。

您只需创建并显示您认为合适的通知,并唯一存储通知 ID 以允许用户->通知映射。这样,您就可以访问同一用户发送另一条消息时显示的通知。

关于java - 如何使用 FCM 管理聊天应用程序的推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57451265/

相关文章:

java - 在 NetBeans 中设置 Log4j2,基本配置

java - eclipse 将母语更改为英语

java - 将“设置” Activity 连接到“Activity 2”后,我的应用程序崩溃了

push-notification - 一次向多个(超过 3 个)主题发送 Firebase 云消息(又名推送通知)

Android:创建通知 channel 的正确位置

java - Java 实现二进制协议(protocol)

android - Jetpack Compose 的 LazyVerticalGrid 是否有 span 策略

android - 自 API 28 以来,是否再次需要 android.permission.INTERNET?

android - 如何有选择地删除 Android Firebase 通知(在系统托盘中)

java - 有没有办法在 WebView 应用程序中创建还原点?