2

onSensorChanged()メソッドで次のようなSensorEventListenerを取得しました。

public void onSensorChanged(SensorEvent e){
   values = e.values.clone();
   handleEvent(); //do some computations
}

ここで、valuesは、いくつかの計算を行うためにhandleEvent()メソッドでアクセスされるクラス変数です。私の質問は、変数値をロックする必要があるかどうかです。つまり、他のスレッドがhandleEvent()にあるときに、onSensorChanged()を呼び出す別のスレッドによって値がオーバーライドされる可能性がありますか?

助けてくれてありがとう!

4

1 に答える 1

2

OnSensorChangedはUIスレッド内で呼び出されるため、UIvaluesスレッド以外のスレッドでアクセスする場合は、同期するか、キューなどの他の手法を使用する必要があります。

于 2012-04-25T20:15:26.620 に答える