方向センサーからイベントを 1 つだけ取得しようとしています。
私のコードは次のとおりです。
@Override
public void onSensorChanged(SensorEvent event) {
Log(event);
unregisterSensor(...);
}
次に、1000msごとにスレッドで次のことを行います。
registerSensor();
Thread.sleep(2000);
問題は、メソッドの最後にセンサーの登録を解除すると(私が行ったように)、次回(センサーを再登録するとき)、以前にキャッチされた同じ値のイベントがログに記録されることです(電話の移動中)。 . onSensorChanged に (カウンターを使用して) 2 回実行する機能を与えると、正しい値が検出され、この値が 2 回ログに記録されます。
一度しか呼び出されないメソッドの問題は何ですか?