java - AlarmManager 是否基于设备的当前时间?

标签 java android alarmmanager android-pendingintent android-date

我有一个应用程序,它有一个独立的(可以这么说).. Clock 来自设备的系统时钟。如果该时钟到达特定时间,我需要从该时钟创建一个警报。现在我正在使用 AlarmManagerPendingIntent 创建一个警报,但它只需要 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/

相关文章:

android - 当应用程序不在后台且自动启动选项被禁用时,JobScheduler 在小米中不起作用

java - SlingFilter 不捕获异常?

java - MVEL 'in' 运算符不适用于 java 中的集合

android - 移动应用程序安装量和每日活跃用户数 (DAU) 之间的差异

android - 我想在android中的不同日期(星期一,星期二等)的特定时间安排任务

android - 如何设置闹钟每月重复

java - 在 Java 中处理 N 个线程上的 M 个慢速计算

java - 将参数传递给 REST Web 服务

java - 关于如何保存数据的建议

android - 在 android :actionLayout not working 中切换(主开/关)