在调用onSensorChanged()之前,它可以完成当前执行之前会发生什么?

时间:2012-10-13 11:51:41

标签: android android-sensors

这是我的功能。

 public void onSensorChanged(SensorEvent event)
    {

            if (event.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION)
            {
               //DO A JOB...
            }
     }      

我的问题是如果在完成当前工作时调用onSensorChanged()会发生什么?

1 个答案:

答案 0 :(得分:1)

如果在处理上一个样本时再次调用onSensorChanged,则onSensorChanged将同时处理两个样本,这可能是计算结果发生的任何问题。我相信它只是传递传感器事件的一个线程,但实际上它不应该再被调用,直到用这个完成处理。

一般情况下,虽然所有处理都应在另一个线程中完成,而onSensorChanged应尽快返回,以便其他接收者也可以对数据进行操作。同时复制数据,不要传递对传感器数据的引用,因为可能会重复使用SensorData对象,如果您在数据周围保留引用,则可能会在您使用它时发生变化。