【问题标题】:Creating an alarm app创建报警应用
【发布时间】:2018-05-16 01:03:58
【问题描述】:
我想创建一个警报,它将从服务器流式传输音频文件。所以基本上我想在特定时间准确地启动前台服务或活动。我应该使用作业调度程序还是警报管理器?我读过作业调度程序无法在特定时间准确地开始工作。 Oreo 的背景限制是否会阻止警报管理器在打盹模式下触发。我是否应该在特定时间之前使用jobscheduler启动前台服务(因此不必准确),然后从前台服务启动警报。
【问题讨论】:
标签:
android
alarmmanager
android-jobscheduler
【解决方案1】:
您需要将AlarmManager 与setExactAndAllowWhileIdle、setAlarmClock() 或setAndAllowWhileIdle() 方法中的任何一个一起使用。
根据文档
- 标准 AlarmManager 警报(包括 setExact() 和 setWindow())被推迟到下一个维护窗口。
- 如果您需要设置在打瞌睡时触发的警报,请使用 setAndAllowWhileIdle() 或 setExactAndAllowWhileIdle()。
- 使用 setAlarmClock() 设置的警报继续正常触发 - 系统在这些警报触发前不久退出打盹。