Android:如何成功从活动捆绑中删除值

问题描述

我正在使用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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...