BigContentView似乎没有更新

时间:2016-06-01 13:53:13

标签: android notifications remoteview

我目前正在开发一款Android应用。我需要通知用户他们已经到达正常通知中的某个位置,并且当通知被扩展时,它会显示额外的信息。通常的:))

我使用2个不同的remoteViews,一个用于设置contentView,另一个用于设置bigContentView。

 NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    // build notification
    NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(context)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContentIntent(notificationPendingIntent)
                    .setColor(Color.CYAN)
                    .setPriority(NotificationCompat.PRIORITY_MAX)
                    .setAutoCancel(true)
                    .setContentTitle("Content Title")
                    .setContentText("Content Text");

    int NOTIFICATION_ID = 1;

    RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.remoteview_notification);
    rv.setImageViewResource(R.id.remoteview_notification_icon, R.mipmap.ic_launcher);
    rv.setTextViewText(R.id.remoteview_notification_headline, "Headline");
    rv.setTextViewText(R.id.remoteview_notification_short_message, notificationContent.getHeading());
    Notification notification = mBuilder.build();

    if (android.os.Build.VERSION.SDK_INT >= 16) {
        notification.contentView = rv; //Alternative to .setContent(rv);
    }
    mNotificationManager.notify(NOTIFICATION_ID, notification);

    RemoteViews rvBig = new RemoteViews(context.getPackageName(), R.layout.remoteview_big_notification);
    rvBig.setImageViewResource(R.id.remoteview_big_notification_icon, R.mipmap.ic_launcher);
    rvBig.setTextViewText(R.id.remoteview_big_notification_headline, notificationContent.getHeading());
    rvBig.setTextViewText(R.id.remoteview_big_notification_full_message, notificationContent.getBodyText());
    if (android.os.Build.VERSION.SDK_INT >= 16) {
        notification.bigContentView = rvBig;
    }
    mNotificationManager.notify(NOTIFICATION_ID, notification);

问题是当我向下拖动时我的扩展通知没有出现?任何帮助将不胜感激。感觉它只是一些尚未正确设置/设置的小东西?

1 个答案:

答案 0 :(得分:0)

我相信我的intentId在我的应用中可能并不是唯一的。我见过人们使用当前系统来确保唯一性。

NOTIFICATION_ID = system.currenttimemillis();

PendingIntent pendingIntent = PendingIntent.getActivity(this, NOTIFICATION_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
notificationManager.notify(NOTIFICATION_ID, builder.build());