我在 Android 中有一个应用程序,它将传感器值转储到手机的 SD 卡内存中,并在我按下屏幕上的按钮时自行终止。我正在使用 Sensor_delay_fastest 来最大程度地更新传感器。
我的问题是,由于我在 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() 中,我将值写入 SD 卡,这可能导致延迟。但是我不能把它放在不同的线程中,因为这样会在事件不断触发时创建很多线程。
那么如何让这个系统响应更快呢?我对Android真的很陌生,非常感谢通过一些示例代码提供的帮助。
谢谢大家!
编辑:我可以让一个线程实现一个接口,比如 SensorEventListener ,然后在该线程中实现 OnResume 和 OnStop 吗?