我想使用类似这样的 PendingIntent 传递一个长值
Intent intentForPending = new Intent(context, NewBlaBlaActivity.class);
long courseId = 15252;
intentForPending.putExtra("courseId", courseId);
intentForPending.putExtra("isFromPushNotification", true);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intentForPending, 0);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
context).setSmallIcon(R.drawable.appicon)
.setContentTitle("BlaBla")
.setStyle(new NotificationCompat.BigTextStyle().bigText(message))
.setContentText(message)
.setAutoCancel(true);
mBuilder.setContentIntent(contentIntent);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
并得到如下值
Intent intent = getIntent();
if(intent.getBooleanExtra("isFromPushNotification", false)) {
long courseId = intent.getLongExtra("courseId", 0);
}
但我总是从意图中得到 0。奇怪的是,虽然我可以从意图中使用“isFromPushNotification”键获取布尔值,但我无法从同一意图中获取长值。
这让我发疯。如您所见,它是一个 PushNotification,当我点击通知时,此代码运行。
我尝试了从stackoverflow中的论坛和问题中获得的所有方法,在def中添加L后缀,在长对象上添加原始值。但我认为 PendingIntent 是湿毯子。
我正在等待你的上帝般的建议。谢谢!