0

いくつかのステップで加速度計のキャリブレーションを実行する必要があるアプリケーションを開発しています。

私が行ったことは、一定量の読み取り値を取得する SensorEventListener を作成することです。その量に達したら、「sensorManager().unregisterListener(eventListener)」を呼び出します。

ただし、実行を続けた結果、直後に同じ行が呼び出されるため、この行はリスナーの登録を解除していないと思います。

質問: この方法で適切に処理を行っていますか? または、この条件に達した後、(if を使用して) 実行を許可しないようにハンドラーを調整する必要がありますか?

4

1 に答える 1

1

登録解除後に SensorEventListener が 1 回しか呼び出されない場合、Android のマルチスレッドの性質による競合状態が原因である可能性があります。したがって、読み取り値の処理を停止したい場合は、(お勧めのように) ブール変数を設定し、if ステートメントでテストして、制限に達したらそれ以上処理されないようにする必要があります。

于 2013-04-11T20:09:03.770 に答える