我正在尝试将通知中的数据发送到我的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中有没有其他方法可以从未决事件中获取数据?我出于两个原因使用相同的类,但是使用了相同的变量。
Bundle bundle = getIntent().getExtras();
Log.d("Title2",bundle.getString("Title"));
date.setText(bundle.getString("Date"));
titletext.setText(bundle.getString("Title"));
答案 0 :(得分:1)
您必须在致电Intent
之前将“附加”添加到PendingIntent.getActivity()
。
如您所见,您在Intent
上添加了“附加”,但在之后,您得到了一个PendingIntent
,用于包裹Intent
。您传递给PendingIntent
的{{1}}中没有“附加”。