我有一个应用程序在Android中将传感器值转储到手机的SDcard内存,并在我按下屏幕上的按钮时自行关闭。我正在使用Sensor_delay_fastest来获取传感器的最大更新。Android传感器转储响应
我的问题是,因为我在UI线程上执行所有计算,所以按钮需要很长时间才能响应,这对我的应用程序非常不利,因为它在按下“Kill”按钮后记录了所有额外值。我知道我应该把我的计算放在另一个线程中,但我不确定我会如何处理事件处理操作。例如,我有
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()中,我在SDcard上写入这些值,这可能会导致延迟。但是我不能把它放在一个不同的线程中,因为随着事件不断发射,它会创建大量的线程。
那么,如何让这个系统更具响应性呢?我对Android非常陌生,并且通过一些示例代码的帮助将不胜感激。
谢谢大家!
编辑:我可以让线程实现一个接口,如SensorEventListener,然后在该线程内实现OnResume和OnStop?