Немного поздно, но если другие все еще хотят знать, вот хороший способ достичь этого.Как всегда при многопоточности, убедитесь, что вы знаете, что делаете, и не торопитесь, чтобы все правильно, чтобы избежать этих странных ошибок.Веселитесь!
Члены класса:
private HandlerThread mSensorThread;
private Handler mSensorHandler;
в OnCreate или при регистрации:
mSensorThread = new HandlerThread("Sensor thread", Thread.MAX_PRIORITY);
mSensorThread.start();
mSensorHandler = new Handler(mSensorThread.getLooper()) //Blocks until looper is prepared, which is fairly quick
yourSensorManager.registerListener(yourListener, yourSensor, interval, mSensorHandler);
При отмене регистрации также выполните:
mSensorThread.quitSafely();