从通知中获取 PendingIntent 结果到目标活动中

Posted

技术标签:

【中文标题】从通知中获取 PendingIntent 结果到目标活动中【英文标题】:Getting PendingIntent result from notification into target activity 【发布时间】:2021-05-20 00:56:50 【问题描述】:

NotificationCompat.Builder 中,我们将PendingIntent 作为setContentIntent() 传递。现在我想做的是在目标活动中我想要在 PendingIntent 实例中传递的 Intent 对象。这样我就可以通过 PendingIntent 获得 Intent 的额外内容。

【问题讨论】:

我不明白你的问题。目标Activity 将使用传递给PendingIntentIntent 启动。您可以从中获得“额外”。问题是什么?你试过什么?什么不工作? 【参考方案1】:

在目标活动中使用 onNewIntent

 @Override
  protected void onNewIntent(Intent intent) 
     super.onNewIntent(intent);
       // use this intent object
     
   

如果仍然遇到问题,请像这样使用 PendingIntent

 Intent notificationIntent = new Intent(mContext, TargetActivity.class);
 notificationIntent.putExtra("abc", "123");
 notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
 PendingIntent intent = PendingIntent.getActivity(mContext, notificationId, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

【讨论】:

以上是关于从通知中获取 PendingIntent 结果到目标活动中的主要内容,如果未能解决你的问题,请参考以下文章

如何获取和取消 PendingIntent?

如何从 PendingIntent 中获取 Intent

未触发 Android 通知操作 (PendingIntent)

PendingIntent劫持导致app任意文件读写漏洞

PendingIntent劫持导致app任意文件读写漏洞

PendingIntent劫持导致app任意文件读写漏洞