当应用程序被杀死时,某些设备中没有调用Firebase onMessageReceived()

时间:2018-02-01 11:24:02

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

我知道当应用程序被杀死时,我们需要发送data有效负载以发送推送通知,并且onMessageReceived()方法将会调用。

但是在阅读了超过100个SO答案和文章后,我得出结论,在很多设备onMessageReceived()上,即使使用数据有效负载也不会调用它们。

还有什么方法可以在这些设备上显示通知。

1 个答案:

答案 0 :(得分:-3)

使用此方法ID FirebaseMessaging类

@Override
    public boolean zzE(Intent intent) {
        Log.e(TAG, "zzE");
        Set<String> keys = intent.getExtras().keySet();
        Log.e(TAG, "" + keys);
        Iterator<String> it = keys.iterator();
        while (it.hasNext()) {
            Log.e(TAG, "zzE " + it.next());
        }
        for (String key : keys) {
            try {
                Log.e("uniq", " " + key + " " + intent.getExtras().get(key));
                if (key.equals("data")) {
                    String cnt = intent.getExtras().get(key).toString();
                    Gson gson = new GsonBuilder().setPrettyPrinting().create();
                    NotificationModel model = gson.fromJson(cnt, NotificationModel.class);
                    int badgeCount = model.getCount();

                    Log.e("uniq", " badge count " + badgeCount);
                    ShortcutBadger.applyCount(this, badgeCount);
                    Log.e("uniq", " " + "end");
                }
            } catch (Exception e) {
                Log.e("uniqbadge", "zzm Custom_FirebaseMessagingService" + e.getMessage());
            }
        }

        return super.zzE(intent);
    }

使用此方法,当应用程序处于被杀死状态时,我通过此方法从firebase向我的应用程序图标显示bagde。您可以通过意图发送数据并打开所需的活动。