如何更新 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())
我收到一条 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())