我正在尝试为包含通知的广播接收器创建PendingIntent,并且我以某种方式获得返回的空PendingIntent。这没有任何意义,因为只有一个指定的情况会返回一个空的PendingIntent,即PendingIntent.FLAG_NO_CREATE是否作为标志选项传递。
这是我的PendingIntent代码..在调试器中后pendIntent = null。
Intent notificationIntent = new Intent(context, LocalPushBroadcastReceiver.class); notificationIntent.putExtra(LocalPushBroadcastReceiver.NOTIFICATION_ID_ARG, pushId); notificationIntent.putExtra(LocalPushBroadcastReceiver.NOTIFICATION_ARG, notification); notificationIntent.setData(Uri.parse("LocalPush:" + pushId + notification.toString())); PendingIntent pendIntent = PendingIntent.getBroadcast(context, 0, notificationIntent, 0);
我尝试了很多其他标志/选项。我尝试从onClick / onStart /到处调用此代码。我使用最新版本的Android Studio,并使用最新的sdk版本25编译。此外,LocalPushBroadcastReceiver在清单中定义正确。
这很奇怪,因为我在另一台应用程序中的另一台机器上运行了完全相同的代码,我无法弄清楚我缺少的配置。我会很感激任何想法。谢谢!
答案 0 :(得分:0)
所以看起来我的问题与我试图作为PendingIntent的参数传递的通知的大小有关。 IMO的日志记录/错误处理在这里可能会好一点,但主要是因为我将一个大的Bitmap作为BigPictureStyle附加到我的通知中,Parcelable最终太大而且需要以不同的方式处理。
TL;博士
我避免将通知作为Parcelable传递,而是在我稍后收到广播时传递我用来获取正确通知的ID。感谢pskink的协助调试。