我正试图将通知中的数据发送到我的newsdetails类。但它总是返回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中。有不同的方法从pendingTenents中获取数据吗?我使用相同的类有两个原因,但变量相同。
Bundle bundle = getIntent().getExtras();
Log.d("Title2",bundle.getString("Title"));
date.setText(bundle.getString("Date"));
titletext.setText(bundle.getString("Title"));
在调用PendingIntent.getActivity()
之前,必须将"extra"添加到Intent
。
正如您所看到的,您向Intent
添加了"extra",但在之后,您得到了一个封装Intent
的PendingIntent
。您传递给Notification
的PendingIntent
中没有"额外"。