2
私はonSensorChanged()メソッドでは、次のようなもの行いSensorEventListenerました:onSensorChanged(...)で同期が必要ですか?
値は、いくつかの計算を行うためにのhandleEvent()メソッドにアクセスされるクラス変数であるpublic void onSensorChanged(SensorEvent e){
values = e.values.clone();
handleEvent(); //do some computations
}
を。 私は変数値をロックする必要があるかどうか、つまり、他のスレッドがhandleEvent()にある間にonSensorChanged()を呼び出す別のスレッドによって値がオーバーライドされる可能性がありますか?
ありがとうございました!
okありがとうございました。 ところで、実際にはどのスレッドが 'onSensorChanged()'メソッドを呼び出していますか?これはいくつかのシステムスレッドですか? UIスレッドから 'values'にアクセスするにはなぜ同期が必要なのでしょうか? – user1086105
私は私の答えを編集しました。 OnSensorChangedはUIスレッド内で呼び出されます。 – Renard
ああおもしろい!これは、1つのスレッドが 'onSensorChanged()'で正しく動作している間に、 'onSensorChanged()'があるスレッドによって呼び出されないことを意味していますか? 1つのUIスレッドしかないので、正しいですか? この場合、UIスレッドは私の 'handleEvent()'メソッドを実行するので同期は必要ありません... UIスレッドが 'onSensorChanged() '? – user1086105