2014-06-29 57 views
0

这个时间格式,我非常有这些时间格式混淆:混淆Android中AlarmManager

alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), (24 * 60 * 60 * 1000), alarmIntent); 

alarmMgr.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 60*1000, alarmIntent); 

什么是60*1000(10 * 1000), (24 * 60 * 60 * 1000)。有人可以向我解释吗?

回答

1

参考AlarmManager API的官方文档(找到here),这些数字用于定义报警发生的时间。因此,数字(10 * 1000)表示以毫秒(或简单地10秒)添加到系统当前时间的时间(以毫秒为单位)。因此,这种情况下的警报将在命令发出后10秒内发出(当前系统时间+ 10秒)。

第二个参数(24 * 60 * 60 * 1000)代表1天(每秒24小时,60分钟,60秒和1000毫秒)的时间。由于没有指定完整的表达式,因此我无法确定此参数的确切含义。

在第二个表达式也,60 * 1000表示1分钟(60 * 1000 = 60000毫秒= 1分钟)

随意张贴您仍对这些数字的含义任何疑虑。

+0

我已经编辑了问题,并把完整的代码行。那么'System.currentTimeMillis()+(10 * 1000),(24 * 60 * 60 * 1000)'会在第一次报警后的10秒内再次发射10秒? –

+0

不,第二个参数是警报重复的持续时间。因此,在这种情况下,警报将在10秒后第一次触发,并且每天都会重复(每隔24 * 60 * 60 * 1000毫秒即1天后触发)。 – BajajG

+0

此外,如果这回答你的问题,不要忘记接受它作为答案。它会帮助其他人解决同样的问题,很容易找到答案。 – BajajG