我知道当应用程序被杀死时,我们需要发送data
有效负载以发送推送通知,并且onMessageReceived()
方法将会调用。
但是在阅读了超过100个SO答案和文章后,我得出结论,在很多设备onMessageReceived()
上,即使使用数据有效负载也不会调用它们。
还有什么方法可以在这些设备上显示通知。
答案 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。您可以通过意图发送数据并打开所需的活动。