Android 7.0 上的 Intent 中缺少通知

Notification Missing From Intent on Android 7.0

我设置了一个闹钟,用于向广播接收器发送带有通知的意图,然后广播接收器触发通知。 7.0 之前,通知在收到时出现在意图中,在 7.0 上它丢失了。

这是生成通知的代码。

public static void scheduleNotification(Context context, String message, long delay,
                                        MainDisplay.NotificationType type) {
    Notification.Builder builder = new Notification.Builder(context).setSmallIcon(
            R.drawable.ic_stat_o)
                                                                    .setContentTitle(
                                                                            "Title")
                                                                    .setContentText(
                                                                            message)
                                                                    .setStyle(
                                                                            new Notification
                                                                                    .BigTextStyle()
                                                                                    .bigText(
                                                                                            message));

    final Intent notificationIntent = generateNotificationIntent(context);
    notificationIntent.putExtra(NotificationPublisher.NOTIFICATION, builder.build());
    notificationIntent.putExtra(TYPE_KEY, type);

    final PendingIntent pendingIntent = generatePendingIntent(context, notificationIntent);

    final long futureInMillis = SystemClock.elapsedRealtime() + delay;
    final AlarmManager alarmManager = (AlarmManager) context.getSystemService(
            Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureInMillis, pendingIntent);
}

这是待处理的意图代码。

public static PendingIntent generatePendingIntent(Context context, Intent notificationIntent) {
    return PendingIntent.getBroadcast(context, 0, notificationIntent,
                                      PendingIntent
                                              .FLAG_UPDATE_CURRENT);
}

这是接收它的代码。

public void onReceive(final Context context, Intent intent) {
    final NotificationManager
            notificationManager = (NotificationManager) context.getSystemService(
            Context.NOTIFICATION_SERVICE);

    final Notification notification = intent.getParcelableExtra(NOTIFICATION);
    final int id = intent.getIntExtra(NOTIFICATION_ID, 0);
    notificationManager.notify(id, notification);

有什么想法吗?谢谢!

我注意到我发送的序列化枚举也丢失了,我知道在 7.0 中有关于太大的意向交易的变化,但我不确定这将如何应用在这里,因为没有抛出异常。我选择简单地发送所需的信息以在 onReceive 中构建通知。