这是我的功能。
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION)
{
//DO A JOB...
}
}
我的问题是如果在完成当前工作时调用onSensorChanged()
会发生什么?
答案 0 :(得分:1)
如果在处理上一个样本时再次调用onSensorChanged,则onSensorChanged将同时处理两个样本,这可能是计算结果发生的任何问题。我相信它只是传递传感器事件的一个线程,但实际上它不应该再被调用,直到用这个完成处理。
一般情况下,虽然所有处理都应在另一个线程中完成,而onSensorChanged应尽快返回,以便其他接收者也可以对数据进行操作。同时复制数据,不要传递对传感器数据的引用,因为可能会重复使用SensorData对象,如果您在数据周围保留引用,则可能会在您使用它时发生变化。