Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于持久频繁调度的AlarmManager备选方案_Java_Android_Android Alarms - Fatal编程技术网

Java 用于持久频繁调度的AlarmManager备选方案

Java 用于持久频繁调度的AlarmManager备选方案,java,android,android-alarms,Java,Android,Android Alarms,我注意到Android 5.1不再接受时间间隔小于60秒的重复报警() 我正在开发一个记录无线网络信息的应用程序。对于应用程序的操作,它必须每1-2秒执行一次操作,并且即使使用了大量资源,也不会被操作系统杀死或挂起。长时间(几个小时)的可靠运行是最重要的。对电池寿命的影响不是一个问题 到目前为止,实现此功能最可靠的方法是使用重复报警。现在Android 5.1不再是一个选项。替换AlarmManager实现的最佳选项是什么?作为一种解决方法,您可以设置60个报警,为当前实现提供灵活的解决方案。检

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

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


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

作为一种解决方法,您可以设置60个报警,为当前实现提供灵活的解决方案。检查操作系统版本,并根据需要设置尽可能多的警报


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

据我所知,有两种可能的解决方案-设置60个警报或使用前台模式实现服务。前台服务是我尝试的第一件事。记录器一直被操作系统杀死。设置60个警报是我从未想到过的事情。这绝对值得一试。谢谢请注意,当设备处于打瞌睡模式时,您的应用程序将无法在Android 6.0及更高版本上运行。@Commonware我相信至少在Android M preview中,可以逐个应用禁用打瞌睡模式。如果公开发布版本是这样的话,那就不是什么大问题了,因为我们的应用程序针对的是训练有素的专业人士,他们可以很容易地被指示关闭应用程序的瞌睡模式。“可以逐个应用程序禁用瞌睡模式”--不。您考虑的是应用程序待机,虽然相关,但它不是瞌睡模式。打瞌睡模式会影响静止/非充电设备的所有应用程序。现在,如果您的设备总是安装在充电器上,那么当充电器工作时,打瞌睡模式将不会启动(例如,大楼内没有断电)。