持续频繁调度的 AlarmManager 替代方案

AlarmManager alternatives for persistent frequent scheduling

我注意到 Android 5.1 不再接受时间间隔短于 60 秒 (source) 的重复警报。

我正在开发一个记录有关无线网络信息的应用程序。对于应用程序的操作,它必须每 1-2 秒执行一次操作,并且即使它使用大量资源也不会被操作系统杀死或挂起。长时间(数小时)的可靠运行是最重要的。对电池寿命的影响不是问题。

到目前为止,实现此功能的最可靠方法是使用循环警报。现在 Android 5.1 不再是一个选项。替换 AlarmManager 实现的最佳选择是什么?

作为一种变通方法,您可以设置 60 个警报以获得针对当前实施的灵活解决方案。检查 OS 版本并根据需要设置任意数量的警报。

但对于长期解决方案,我建议您实施粘性前台服务,其工作方式类似于音乐播放器。像 Handler.postDelayed 这样简单的东西应该足以让它保持活力。这样做的原因是警报不准确,最好对过程进行一些控制。