我有一个应用程序,它有一个独立的(可以这么说).. Clock
来自设备的系统时钟。如果该时钟到达特定时间,我需要从该时钟创建一个警报。现在我正在使用 AlarmManager
和 PendingIntent
创建一个警报,但它只需要 long triggerAtMillis
作为参数。这是基于设备的系统时钟吗?
根据 AlarmManager.setRepeating()
的 javadocs
:
* @param triggerAtMillis time in milliseconds that the alarm should first
* go off, using the appropriate clock (depending on the alarm type).
那么appropriate clock
是什么意思呢?
最佳答案
尽管 AlarmManager
以设备时间工作,但触发警报的时间由您提供。
因此您可以计算自定义时钟和设备时钟之间的差异,然后相应地将时间传递给 AlarmManager
。
你可以这样试试
第 1 步获取设备时钟和您的时钟的当前时间并将它们相减得到差异
第2步有了区别,你现在可以根据你的时钟时间计算设备时间
第 3 步 现在根据该时间设置 AlarmManager
,该时间相当于您自定义时钟时间的设备时间。
虽然这是一种解决方法,但这是我能想到的。
希望这有帮助:)
关于java - AlarmManager 是否基于设备的当前时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37649255/