1

これが私の機能です。

 public void onSensorChanged(SensorEvent event)
    {

            if (event.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION)
            {
               //DO A JOB...
            }
     }      

onSensorChanged()私の質問は、現在のジョブを終了しているときに が呼び出されるとどうなりますか?

4

1 に答える 1

1

前のサンプルの処理中にonSensorChangedが再度呼び出された場合、onSensorChangedは一度に2つのサンプルを処理します。これは、計算の最終結果で何が起こっているかについて問題になる可能性があります。センサーイベントを配信するのは1つのスレッドにすぎないと思いますが、実際には、このスレッドで処理が完了するまで、再度呼び出されることはありません。

一般的には、すべての処理は別のスレッドで実行する必要があり、onSensorChangedはできるだけ早く戻る必要があるため、他のレシーバーもデータに対応できます。また、データをコピーします。SensorDataオブジェクトが再利用される可能性があるため、センサーデータへの参照を渡さないでください。データの周囲に参照を保持すると、使用するまでにデータが変更される可能性があります。

于 2012-10-14T13:53:51.373 に答える