如何从库模块内部的暂挂意图中获取额外数据?

时间:2019-07-11 07:06:32

标签: android kotlin push-notification android-pendingintent

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

在库模块内部,我试图使用应用程序级别活动的弱引用来获取数据。

我得到的临时演员为空。但是,我可以在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")
        }
    }
  }

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

1 个答案:

答案 0 :(得分:0)

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

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