我已经在我的应用程序中实施了Firebase,并且使用额外数据发送推送通知。当我的应用程序在前台时,我可以正确处理数据并显示自己的通知,但是当Firebase在应用程序处于“已回到主页”状态(未被杀死)时,“自动”显示通知时,我会遇到一个获取数据的问题。根据文档,Activity
应该收到使用我的值填充的新Intent
和额外参数,但实际上应用程序只是返回到前台,恢复旧状态。
场景:
- 打开应用程序,按主页键
- 通过Firebase控制台发送推送通知,Firebase创建
Notification
而没有调用onMessageReceived
(根据文档中的表格,应该调用?) - 当用户选择通知时,应用程序将以与“已回到主页”状态相同的状态带到前台,并且
Intent
使用用于打开最上面的Activity
的“原始”额外参数进行填充
我在onCreate
,onNewIntent
,onResume
(Activity
)和onMessageReceived
(Service
)中都有日志,只调用了onResume
,在其中我打印出额外参数,如下所示:
if (getIntent().getExtras() != null) {
for (String key : getIntent().getExtras().keySet()) {
Object value = getIntent().getExtras().get(key);
Log.d("Activity onResume", "Key: " + key + " Value: " + value);
}
}