如何更新 Android 通知的时间

How to update time of an Android notification

我收到一条 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 应用程序可以做到这一点 - 更改发送新消息时的显示时间。

我怎样才能做到这一点?

目前:

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

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

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

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

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())