【问题标题】:How to get extra data from pending intent inside the library module?如何从库模块内的待处理意图中获取额外数据?
【发布时间】:2019-07-11 07:06:32
【问题描述】:

我正在创建一个要嵌入到项目中的库。在收到推送通知时,当用户单击通知时,会通过应用程序级别的 onNewIntent 中的意图接收额外的数据,但我希望在库模块中获取这些数据。我们如何实现它?

在库模块中,我尝试使用应用级活动的弱引用来获取数据。

我得到的额外内容是空的。但是,我可以在 MainActivity 的 onNewIntent 中获取意图值。

例如

 private fun checkNotificationClick(context: WeakReference<Activity>?) {

    val activity = context!!.get()
    val extras = activity?.intent?.extras
    if (extras != null) {
        if (extras.getString("message_id") != null) { 
            val messageId = extras.getString("message_id")
        }
    }
  }

意图中的额外数据是预期的,但它即将为空。

【问题讨论】:

  • 嘿,您是否尝试过制作一个摘要或只是一个扩展 Activity 的开放类,然后让您的图书馆用户继承该摘要?
  • @Hohenheim 这完全取决于用户如何保持类属性。图书馆不能依赖于这样的标准。我只有用户在应用级别创建的 Activity 的上下文可用。

标签: android kotlin push-notification android-pendingintent


【解决方案1】:

通知库的用户,他必须从onNewIntent() 调用库中的一个方法,该方法将Intent 传递给库。此信息不会存储(默认情况下)任何您可以从中获取的地方。

为了保持一致性,用户还应该从onCreate() 调用该方法,并使用原始Intent

【讨论】:

    猜你喜欢
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多