android - 当应用程序被杀死时,Firebase 通知不会在某些手机上运行

标签 android firebase firebase-cloud-messaging android-notifications

我正在尝试在我的 Android 应用中实现 FCM。在一些手机上,当应用程序处于前台/后台/被杀死时会收到通知。但在某些手机上,只有当应用程序处于前台/后台时才会收到。当应用程序被终止时, onMessageReceived 和启动器 getExtra 也不会被调用。我同时使用 API 中的数据和通知对象。 这是我的 Android 代码 -

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.e("Here", "here");
if (remoteMessage.getData().size() > 0) {
  Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());
  try {
    JSONObject json = new JSONObject(remoteMessage.getData());
    sendPushNotification(json);
  } catch (Exception e) {
    Log.e(TAG, "Exception: " + e.getMessage());
  }
}
if (remoteMessage.getNotification() != null) {
  Log.e(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
}

最佳答案

Add BootBroadcastReceiver in Manifest file

<receiver
            android:name=".OnBootBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
</receiver>

Create Following Java file. call the FirebaseMessagingReceiveService inside it.

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class OnBootBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent i = new Intent("com.demo.FirebaseMessagingReceiveService");
        i.setClass(context, FirebaseMessagingReceiveService.class);
        context.startService(i);
    }
}

关于android - 当应用程序被杀死时,Firebase 通知不会在某些手机上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46092014/

相关文章:

Android FirebaseMessaging Service onMessageReceived 调用了两次

Android - 将 Jsoup 与 android_asset html 文件一起使用

java - com.google.firebase.database.DatabaseException : Can't convert object of type java. lang.String 输入 com.example.myapplication.Orders

reactjs - Firebase firestore onSnapshot 在 useEffect 中无法正常工作

javascript - Firebase云功能-获取父 Node ,同时监听子 Node 的更改

java - 致命异常 : Firebase-Messaging-Intent-Handle Process: com. google.android.youtube 在 pre launch google play console 上

java - StaggeredGridLayoutManager 显示类似 GridLayoutManager 的图像

android - Gradle 3.0.0 的 Proguard 问题

android - 如何添加选项卡布局而不让activity扩展TabActivity?

ios - 在不配置 APNs 身份验证 key 的情况下发送推送通知