如何更新Android通知的时间

时间:2016-12-30 18:23:43

标签: java android notifications android-notifications

我有一个Android通知,每隔几分钟就会更新一次。

首先,我创建了一个Builder

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);

然后,当我第一次展示它并且每次更新它时,我都使用此代码:

mBuilder.setContentTitle("Title");
mBuilder.setContentText("Text");
NotificationManager manager = (NotificationManager)
        context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(0, mBuilder.build());

但是在通知的右上角,Android仍会显示首次向用户显示的时间。我希望显示上次更新的时间。我知道这是可能的,因为Facebook的Messenger应用程序会这样做 - 更改发送新邮件时的显示时间。

我怎样才能做到这一点?

目前: test

2 个答案:

答案 0 :(得分:8)

你可能正在寻找NotificationCompat.Builder#setWhen(long)。使用System.currentTimeMillis()提供它应该将时间戳更新为当前时间。

此外,如果您希望该时间戳显示在Android N或更高版本上,则需要在某个时刻调用NotificationCompat.Builder#setShowWhen(true),因为它默认为false。

来源:https://developer.android.com/reference/android/app/Notification.html#when

答案 1 :(得分:0)

您可以使用以下代码显示时间

val notificationBuilder = NotificationCompat.Builder(this) .setSmallIcon(R.mipmap.ic_launcher) .setContentTitle(title) .setContentText(body) .setColor(resources.getColor(R.color.colorPrimary)) .setAutoCancel(true) .setSound(soundUri) .setContentIntent(pendingIntent) .setWhen(System.currentTimeMillis())