这就是问题的关键,对于通知来说,when这个属性值应该在activity一启动的时候就应该固定。如果没有固定,就会使用默认的值,默认的值就是当前的时间,即System.currentTimeMillis()的值。因此使用一个自定义的固定值就可以解决问题。 复制代码 代码如下: final long TIMESTAMP_FIXED = 1234567890l; notification.when = TIMESTAMP_FIXED;
以下如Google介绍如何使用notification的when的说明。 复制代码 代码如下: A timestamp related to this notification, in milliseconds since the epoch. Default value: Now. Choose a timestamp that will be most relevant to the user. For most finite events, this corresponds to the time the event happened (or will happen, in the case of events that have yet to occur but about which the user is being informed). Indefinite events should be timestamped according to when the activity began. Some examples: Notification of a new chat message should be stamped when the message was received. Notification of an ongoing file download (with a progress bar, for example) should be stamped when the download started. Notification of a completed file download should be stamped when the download finished. Notification of an upcoming meeting should be stamped with the time the meeting will begin (that is, in the future). Notification of an ongoing stopwatch (increasing timer) should be stamped with the watch"s start time. Notification of an ongoing countdown timer should be stamped with the timer"s end time.