在解雇时获取android通知的数据有效负载

时间:2016-07-13 11:31:15

标签: android firebase firebase-cloud-messaging

我使用Firebase云消息传递将带有数据有效负载的通知发送到我的应用。

当我发送通知时,如果我的应用程序正在运行(前台),我会从onMessageReceived()类中获取覆盖FirebaseMessagingService的数据。

如果我的应用未运行,则会将通知发送到"系统托盘"当用户点击通知我的应用程序启动时,我可以获得具有getExtras意图的数据。

但是,如果用户在"系统托盘&#34中解除通知,我怎么能得到数据?

我需要写一些后台服务" listen"通知得到这个?

2 个答案:

答案 0 :(得分:1)

好像您正在从Firebase控制台发送通知。这些消息始终为notification messages。如果notification message具有附带的数据有效负载,那么只有当用户点击通知时,该数据才可用于您的应用程序。如果用户从未点按通知,那么您的应用将无法使用该数据。因此,您不应使用notification messages将应用关键数据发送到您的应用。

如果您发送data messages,则始终由onMessageReceived回调处理。此时,您可以静默处理消息或显示您自己的通知。因此,如果您想确保您的应用程序有机会处理邮件中的数据,请使用data messages

答案 1 :(得分:0)

所以基本上你想存储那些数据?

如果要存储该数据,则在OnReceive()方法中编写代码并在其中编写数据库插入代码。

并在其中添加一个标记,如“Dismissed = true” 如果用户打开您的通知,则将其设为false,您就可以获得结果。

没有具体方法可以检测您的应用的通知是否被驳回。所以你必须手动维护这些数据。