PendingIntent 发送 void 到 activity

PendingIntent sends void to activity

我正在尝试将通知中的数据发送到我的新闻详情 class。 但它总是返回 null。我试着在发送之前检查我的变量中是否真的有数据,似乎我有,所以我想弄清楚为什么

所以这是我的 MyFirebaseMessageService.class

      Intent intent = new Intent(this, NewsDetails.class);
            //intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
           PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

             String Link = data.get("picture_url");
             String Date = data.get("date");
             String Title = data.get("title");
             String Description = data.get("description");
             Log.d("Dateter", Date);
             if (Link != null ) {

                 intent.putExtra("Link",Link);
                 intent.putExtra("ThumbNail",Link);
             }
             if (Date != null ) {
                 intent.putExtra("Date",Date);
             }
            if (Title != null  ) {

                intent.putExtra("Title",Title);
            }
            if (Description !=null ) {
                intent.putExtra("Description",Description);
            }


        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "channel_id")
                    .setContentTitle(notification.getTitle())
                    .setContentText(notification.getBody())
                    .setAutoCancel(true)
                    .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                    .setContentIntent(pendingIntent)
                    .setContentInfo(notification.getTitle())
                    .setLargeIcon(icon)
                    .setColor(Color.BLUE)
                    .setLights(Color.BLUE, 1000, 300)
                    .setDefaults(Notification.DEFAULT_VIBRATE)
                    .setSmallIcon(R.drawable.logo24x24)
                    .addAction(R.drawable.logo24x24,"Open",pendingIntent);

这是我的一部分 Newsdetails.class *(请注意,当我正常使用它从我的应用程序打开一篇文章时,它会正常打开。它只从通知中获取 Null。但数据在MyFirebaseMessageService.class 在吃午饭之前。是否有不同的方法从 pendingitentents 获取数据?我使用相同的 class 有两个原因,但变量相同。

  Bundle bundle = getIntent().getExtras();
        Log.d("Title2",bundle.getString("Title"));
        date.setText(bundle.getString("Date"));
        titletext.setText(bundle.getString("Title"));

您必须在 调用 PendingIntent.getActivity().

之前将 "extras" 添加到 Intent

如您所见,您将 "extras" 添加到 Intent,但是 之后您得到了一个 PendingIntent 包装Intent。您传递给 NotificationPendingIntent 中没有 "extras"。