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