我应该使用 setAlarm、setExact 还是 setRepeat Alarm?



对于setAlarm()参数:我应该使用SystemClock.elapsedRealtime(),calander,getTimemillise还是其他什么?

因为闹钟来了,但是当我手动转到我的Android手机日期和时间设置并更改时间(不是过去,而是将来的时间)时,闹钟不会来并立即触发。

这是官方警报管理器文档中为所有设置方法指定的预期行为。

如果规定的触发时间是过去,则警报将立即触发。

要进行管理,您可以尝试在接收器中取消具有过去触发时间的此类警报。

如何选择 System.currentTimeMillis() vs SystemClock.elapsedRealtime()

由于链接指定:-

  1. 第一种方法,将为您提供表示毫秒的标准"壁挂"时钟(时间和日期),并受到设置中时间和日期的影响和变化。

  2. 对于第二种方法,返回自系统启动以来的时间(以毫秒为单位),包括睡眠时间。因此,不会受到设置更改的影响,因此它是通用间隔计时的推荐基础。

因此,如果您不希望时间依赖于 时区变化 ,最好使用第二种方法。否则,您需要如前所述处理它。

与日期或日历等其他替代方案相比,由于性能优势,最好使用当前TimeMillis()。

最新更新