android alarmmanager如果设置过去的时间就会触发广播?

2024-11-27 23:50:09
推荐回答(5个)
回答1:

虽然问题已经关闭,但忍不住回复你。明天的时间,怎么会是过去的时间?明明就是未来的时间。你以为今天16点大于明天早上8点?如果是,你就不了解Java的时间标识方法。Java为了存储方便,用long型数据表示1970.1.1凌晨0点0分0秒0毫秒到现在时间。
例如
1346829956843
表示:2012年09月05日 15时25分56秒843毫秒
1346891156843
表示:2012年09月06日 08时25分56秒843毫秒
所以明天的时间绝对是比今天大的。
AlarmManager.set(int type, long triggerAtTime, PendingIntent operation)函数里,triggerAtTime就是上述的long型。

回答2:

android系统就是这样的,你可以在Calendar设置时间时做个判断,如果是过去的时间,就把Calendar的日期加一,这样就是第二天的闹钟了。

回答3:

增加判断:
if(当前时间16点>你想设置的时间8点)

把当前日期加1.

回答4:

改日期试试,我遇到一个这样的问题。就是立刻触发了,但系统闹钟不会,在找办法解决

回答5:

作个判断就行啦,如果设置时间已经过去了,就不让他发送这个广播