问题描述
我正在使用FirebaseMessagingService
处理我的App中的推送通知。如果应用程序在后台运行,则FirebaseMessagingService
无法正常工作,无法单独处理通知,而是将推送通知中的有效载荷扔到Activity Bundle
中。我必须迭代activity.intent.extras
才能通过其键找到我的有效载荷值。这样做很好,但是要消除重复的推送通知触发器,我必须从此Bundle
实例中删除键和值。
有什么方法可以实现这一目标吗?我试图使用'extras.remove(keyName)'通过键删除值,但是它不起作用,并且在调用onActivityResume()
之后,由于值仍然存在于Bundle
中,因此我的推送通知操作再次被触发。
它在Application
类中处理。
Application
类正在扩展ActivityLifecycleCallbacks
,以在应用程序进入后台时处理多个活动中的恢复检测。
override fun onActivityResumed(activity: Activity?) {
activity?.let {
if(activity is MainActivity || activity is ProfileActivity) maybeFindBackgroundPayload(activity.intent.extras)
}
}
然后我会在Bundle
中找到某些推送通知键,如果那里存在,我将根据给定的键进行操作-例如显示对话框。
此后,我将从附加功能中删除找到的键及其值。显然这不起作用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)