long when = Calendar.getInstance().getTimeInMillis();
when += 10000;
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
getApplicationContext())
.setWhen(when)
.setContentText(notificationContent)
.setContentTitle(notificationTitle)
.setSmallIcon(smalIcon)
.setAutoCancel(true)
.setTicker(notificationTitle)
.setLargeIcon(largeIcon)
.setDefaults(Notification.DEFAULT_LIGHTS| Notification.DEFAULT_VIBRATE| Notification.DEFAULT_SOUND)
.setContentIntent(pendingIntent);
这在onCreate中运行,然而,我的通知会在应用程序启动时立即创建,而不是在10秒后创建。 怎么了?
甚至
.setWhen(System.currentTimeMillis()+10000)
10秒后不显示。它直接显示。
答案 0 :(得分:6)
来自setWhen(...)
...
添加与通知相关的时间戳(通常是事件发生的时间)。它默认显示在通知内容视图中;使用setShowWhen来控制它。
setWhen(...)
方法未设置应显示Notification
的时间(延迟)。它用于显示某个事件发生的时间。
例如,假设您的应用监控接收短信 - 当有消息到达时,您会创建Notification
说“您有新的短信”并且您使用setWhen(...)
来显示时间该消息已收到。
如果您要为事件设置特定延迟或固定时间以及要显示关联的Notification
,请使用AlarmManager。