android中的本地通知立即开始,而不是在给定的时间

时间:2013-05-05 21:00:11

标签: android time notifications

    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秒后不显示。它直接显示。

1 个答案:

答案 0 :(得分:6)

来自setWhen(...) ...

的文档
  

添加与通知相关的时间戳(通常是事件发生的时间)。它默认显示在通知内容视图中;使用setShowWhen来控制它。

setWhen(...)方法未设置应显示Notification的时间(延迟)。它用于显示某个事件发生的时间。

例如,假设您的应用监控接收短信 - 当有消息到达时,您会创建Notification说“您有新的短信”并且您使用setWhen(...)来显示时间该消息已收到。

如果您要为事件设置特定延迟或固定时间以及要显示关联的Notification,请使用AlarmManager