Esto parece una pregunta básica, pero después de buscar por un tiempo y jugar con él, llegué al punto en que se apreciaría algo de ayuda. Me gustaría tener un SensorEventListener ejecutado en un hilo separado de la interfaz de usuario, por lo que los cálculos que deben ocurrir cuando los eventos entran no ralentizarán la IU.SensorEventListener en un hilo separado
Mi último intento se ve así:
class SensorThread extends Thread {
SensorManager mSensorManager;
Sensor mSensor;
public void run() {
Log.d("RunTag", Thread.currentThread().getName()); // To display thread
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE );
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
MySensorListener msl = new MySensorListener();
mSensorManager.registerListener(msl, mSensor, SensorManager.SENSOR_DELAY_UI);
}
private class MySensorListener implements SensorEventListener {
public void onAccuracyChanged (Sensor sensor, int accuracy) {}
public void onSensorChanged(SensorEvent sensorEvent) {
Log.d("ListenerTag", Thread.currentThread().getName()); // To display thread
}
}
En la actividad (o de servicio) onCreate(), se crea un objeto SensorThread y llamar a su método start(). Como era de esperar, el registro de depuración muestra la entrada "RunTag" en el nuevo hilo. Pero el "ListenerTag" de onSensorChanged() se ejecuta en el hilo principal, aunque su objeto se instancia en el nuevo hilo. ¿Cómo cambio eso?
posible duplicado de [Sensor Acclerometer en Hilo Separado] (http://stackoverflow.com/questions/17513352/acclerometer-sensor-in-separate-thread) –