android - 手动更改设备时间时,Android警报管理器不会触发警报
问题描述
我已经使用警报管理器设置了一个警报并测试它手动更改了设备的时间。此时警报不会触发,但如果我们等到它被触发的时间。有没有更好的选择来测试警报?
报警设置代码如下。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setExactAndAllowWhileIdle(
AlarmManager.RTC_WAKEUP,
total,
operation
)
} else {
alarmManager.setExact(
AlarmManager.RTC_WAKEUP,
total,
operation
)
}
解决方案
不,这不会由AlarmManager
. 因此,您应该听取时间更改操作并重新创建警报。
这些动作是
Intent.ACTION_TIME_TICK
Intent.ACTION_TIMEZONE_CHANGED
Intent.ACTION_TIME_CHANGED
警报管理器即使在重新启动后仍然存在吗?是了解您的问题并解决问题的更好答案。
为了更好地理解,您可以关注Android 中的日期和时间更改侦听器?
推荐阅读
- excel - Excel COUNTIFS 标准...我想计算 range1 中所有满足 range2 特定条件的名称(不是特定名称)。我该怎么做呢?
- javascript - 无法遍历 API 响应数据
- react-native - 在导航到屏幕时在 UseEffect() 中调用 React-Native useSelector 不返回结果
- firebase - Firebase OTP 在 3 月 9 日之后无法正常工作
- kong - Kong - 将传入子域映射到特定端口
- javascript - 快速排序(lomuto 的分区)实现
- ansible - Ansible如何使用环境基础列表变量为不同的环境复制相同的模板,而无需更改组变量和模板
- javascript - 包含 HTML 标记的字符串上的标题大小写的正则表达式问题
- r - 我可以使用 barplot() 显示条形的百分比吗?
- esp32 - 在 windows mysys 中为 esp32 设置 openocd 时出错