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
。您传递给 Notification
的 PendingIntent
中没有 "extras"。
我正在尝试将通知中的数据发送到我的新闻详情 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()
.
Intent
如您所见,您将 "extras" 添加到 Intent
,但是 在 之后您得到了一个 PendingIntent
包装Intent
。您传递给 Notification
的 PendingIntent
中没有 "extras"。