【发布时间】:2015-09-21 22:44:57
【问题描述】:
我注意到 Android 5.1 不再接受时间间隔小于 60 秒的重复警报 (source)。
我正在开发一个记录有关无线网络信息的应用程序。对于应用程序的操作,它必须每 1-2 秒执行一次操作,并且即使它正在使用大量资源,它也不会被操作系统杀死或挂起。长时间(几个小时)的可靠运行是最重要的。对电池寿命的影响不是问题。
到目前为止,实现此功能的最可靠方法是使用重复警报。现在有了 Android 5.1,这不再是一种选择。替换 AlarmManager 实现的最佳选择是什么?
【问题讨论】:
-
恕我直言,有两种可能的解决方案 - 设置 60 个警报或使用前台模式实施服务。
-
前台服务是我尝试的第一件事。记录器一直被操作系统杀死。设置 60 个警报是我从未想过的事情。这绝对值得一试。谢谢!
-
请注意,当设备处于打盹模式时,您的应用将无法在 Android 6.0 及更高版本上运行。
-
@CommonsWare 我相信至少在 Android M 预览版中,可以逐个应用禁用打盹模式。如果公开发布版本是这种情况,那将不是什么大问题,因为我们的应用程序面向训练有素的专业人员,他们可以很容易地被指示关闭应用程序的打瞌睡模式。
-
“打盹模式可以逐个应用禁用”——不。您正在考虑应用待机,虽然相关,但不是打盹模式。打盹模式会影响静止/非充电设备的所有应用程序。现在,如果您的设备碰巧总是在充电器上,那么在充电器工作时打瞌睡模式将不会启动(例如,建筑物内没有停电)。
标签: java android android-alarms