Doze模式如何影响已注册的侦听器?
另外,我想知道它是如何影响传感器监听器的。
我的问题是我在清单中有一个Compiled lib/sigiltest.ex
** (CompileError) (for doctest at) lib/sigiltest.ex:7: undefined function sigil_a/2
(stdlib) lists.erl:1337: :lists.foreach/2
(stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
具有唤醒锁定权限。 watchFace每分钟运行WatchFaceService
。很多时候,当设备处于打盹状态时会发生这种情况。那时它会为HR注册一个监听器来收集10个值。根据我的观察,在听众注册后,打盹模式会启动,但传感器保持活动状态。
例如,HR传感器保持点亮状态。
这是正常的,为什么?以下是我的观察
采样周期为0微秒的监听器:
onTimeTick
日志:
sensorManager.registerListener(averagingSensorEventListener, sensor, averageSamplingPeriodUs, averageMaxReportLatencyUs);
完成时间超过4分钟,在这几分钟内,HR传感器处于活动状态(绿灯),而不会触发06-12 17:35:00.308 724-724/? D/android.sensor.heart_rate: Starting average calculation
06-12 17:36:01.065 724-724/? D/android.sensor.heart_rate: Event value 75.0 accepted
06-12 17:36:01.166 724-724/? D/android.sensor.heart_rate: Event value 75.0 accepted
06-12 17:36:20.471 724-724/? D/android.sensor.heart_rate: Event value 71.0 accepted
06-12 17:37:01.066 724-724/? D/android.sensor.heart_rate: Event value 72.0 accepted
06-12 17:38:01.067 724-724/? D/android.sensor.heart_rate: Event value 73.0 accepted
06-12 17:39:00.072 724-724/? D/android.sensor.heart_rate: Event value 81.0 accepted
06-12 17:39:28.135 724-724/? D/android.sensor.heart_rate: Event value 81.0 accepted
06-12 17:39:28.276 724-724/? D/android.sensor.heart_rate: Event value 80.0 accepted
06-12 17:39:29.244 724-724/? D/android.sensor.heart_rate: Event value 77.0 accepted
06-12 17:39:30.110 724-724/? D/android.sensor.heart_rate: Event value 75.0 accepted
06-12 17:39:31.172 724-724/? D/android.sensor.heart_rate: Event value 73.0 accepted
06-12 17:39:31.173 724-724/? D/android.sensor.heart_rate: Stopped listening
06-12 17:39:31.180 724-724/? D/android.sensor.heart_rate: Average calculated: 76.0
06-12 17:39:31.180 724-724/? D/android.sensor.heart_rate: Event value 76.0 accepted
回调或报告侦听器注册的值。
更新:
对于我的问题,在莫拉莱斯的出色答案之后,我通过每次需要注册一个监听器解决了这个问题,我获得了一个唤醒锁,并在完成采样后将其释放。这样,事件与我要求的时间一致,并且不会使传感器保持活动状态。
答案 0 :(得分:5)
文档说有几个sensor types,每个传感器都有一个reporting-mode(连续, on-change , one-拍摄和特殊)并且每个传感器都按type传感器归类:
Doze文档未指出有关特定传感器的任何信息,但配置打盹模式所需的significant motion sensor除外。
要查看各个传感器类型说明,了解有关生成事件的详细信息,您可以查看documentation。
在处于打盹模式时,您的应用有一些限制:
Doze会对应用程序产生不同的影响,具体取决于它们提供的功能及其使用的服务。许多应用程序在Doze周期内正常运行而无需修改。在某些情况下,您必须优化应用管理网络,警报,作业和同步的方式。应用应该能够在每个维护窗口中有效地管理活动。