我使用Firebase云消息传递将带有数据有效负载的通知发送到我的应用。
当我发送通知时,如果我的应用程序正在运行(前台),我会从onMessageReceived()
类中获取覆盖FirebaseMessagingService
的数据。
如果我的应用未运行,则会将通知发送到"系统托盘"当用户点击通知我的应用程序启动时,我可以获得具有getExtras
意图的数据。
但是,如果用户在"系统托盘&#34中解除通知,我怎么能得到数据?
我需要写一些后台服务" listen"通知得到这个?
答案 0 :(得分:1)
好像您正在从Firebase控制台发送通知。这些消息始终为notification messages
。如果notification message
具有附带的数据有效负载,那么只有当用户点击通知时,该数据才可用于您的应用程序。如果用户从未点按通知,那么您的应用将无法使用该数据。因此,您不应使用notification messages
将应用关键数据发送到您的应用。
如果您发送data messages
,则始终由onMessageReceived
回调处理。此时,您可以静默处理消息或显示您自己的通知。因此,如果您想确保您的应用程序有机会处理邮件中的数据,请使用data messages
。
答案 1 :(得分:0)
所以基本上你想存储那些数据?
如果要存储该数据,则在OnReceive()方法中编写代码并在其中编写数据库插入代码。
并在其中添加一个标记,如“Dismissed = true” 如果用户打开您的通知,则将其设为false,您就可以获得结果。
没有具体方法可以检测您的应用的通知是否被驳回。所以你必须手动维护这些数据。