私はAndroidのアプリケーションを持っていて、画面上のボタンを押すとセンサ値を電話のSDカードメモリにダンプして自分自身を殺します。私はセンサーの最大更新を得るためにSensor_delay_fastestを使用しています。Android Sensor Dump Responsiveness
私の問題は、UIスレッドですべての計算を行っているので、ボタンが応答するのに非常に時間がかかることです。アプリケーションでは非常に悪いです。私は別のスレッドに計算を入れておくべきだと理解していますが、イベント処理操作のためにどうすればよいか分かりません。例えば、私は)
protected void onResume()
{
super.onResume();
sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_FASTEST);
sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_FASTEST);
}
とonStopを(有し、機能がonSensorChanged()とイベントが発生実行さonAccuracyChanged()。実際には、主な「重い」計算がonSensorChanged()にあります。ここでSDカードに値を書き込んでいます。おそらく遅延の原因になっています。しかし、別のスレッドに入れることはできません。なぜなら、イベントが発生し続けると、たくさんのスレッドが作成されるからです。
このシステムをより敏感にするにはどうすればよいですか?私はAndroidには本当に新しく、いくつかのサンプルコードを使っていくつかの助けを歓迎します。
ありがとうございます!
EDIT:スレッドに、SensorEventListenerのようなインターフェイスをインプリメントし、そのスレッド内のOnResumeとOnStopを含めることができますか?