当onSensorChanged()在完成当前执行之前被调用时会发生什么



这是我的函数。

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

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

如果在处理上一个样本时再次调用onSensorChanged,那么onSensorChanged将同时处理两个样本,这可能是计算最终结果的问题。然而,我相信这只是一个传递传感器事件的线程,所以在处理完这个线程之前,不应该再次调用它。

在一般实践中,尽管所有处理都应该在另一个线程中完成,并且onSensorChanged应该尽快返回,以便其他接收器也可以对数据进行操作。同时复制数据,不要将引用传递给传感器数据,因为SensorData对象可能会被重复使用,如果你在数据周围保留引用,那么在你使用它时可能会发生变化。

最新更新