【发布时间】:2017-08-28 20:31:18
【问题描述】:
我正在使用 firebase 向我的应用发送通知。我想将每个设备上收到的通知保存在本地数据库中。问题是,当应用程序处于后台并收到通知时,不会调用 onMessageReceived() 方法,而是根据文档将通知添加到系统托盘中。该文档还提到了在应用程序处于后台时接收通知的以下内容:
在这些情况下,通知会传送到设备的系统托盘,而数据负载会在启动器 Activity 的 Intent 的附加内容中传送。
因此,当我尝试访问意图中的附加功能时,找不到通知的键。
我的代码在MainActivity.java:
if (getIntent().getExtras() != null) {
for (String key : getIntent().getExtras().keySet()) {
Object value = getIntent().getExtras().get(key);
Toast.makeText(this, "Key: " + key + " Value: " + value, Toast.LENGTH_LONG).show();
}
}
我们从服务器发送的通知:
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}
有人知道如何检索通知中的值吗?
【问题讨论】:
标签: android android-intent firebase google-cloud-messaging firebase-cloud-messaging