我正在尝试将传感器测量值记录到设备内存中。为此,我为许多传感器注册了相同的 SensorEventListener,然后根据类型使用开关将它们分开。
例如。
int type = sensor.getType();
switch (type) {
case Sensor.TYPE_ACCELEROMETER:
// log accelerometer data
break;
case Sensor.TYPE_GYROSCOPE:
// Log gyroscope data
break;
...
我的问题是,考虑到我使用 SENSOR_DELAY_FASTEST 注册了监听器,最有效(消耗电池电量更少)的方法是什么?为每个传感器设置一个监听器,还是设置一个监听器并用开关将传感器分开?
非常感谢您提前
米诺斯
最佳答案
一个安卓应用程序应该使用一个 SensorEventListener 每个传感器,因为每个 SensorEventListener 创建它的 自己的 FIFO 缓冲区 处理 SensorEvent .
通过芯片的电流消耗水平与提供给传感器的延迟有关不考虑 SensorEventListener 它附有。
如果多个传感器与一个 SensorEventListener 一起使用,则某些事件可能会丢失,原因是 缓冲区溢出 , 当传感器用于 SENSOR_DELAY_FASTEST .
因此,为了获得最佳结果并确保不会丢失任何事件:
提高效率:
关于android-sensors - 传感器管理器 : One SensorEventListener VS Multiple Listeners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816089/