Я пытаюсь получить только 1 событие от датчика ориентации.
Мой код:
@Override
public void onSensorChanged(SensorEvent event) {
Log(event);
unregisterSensor(...);
}
Затем в потоке каждые 1000 мс я делаю:
registerSensor();
Thread.sleep(2000);
Проблема в том, что если я отменю регистрацию датчика в конце метода (как я сделал), то в следующий раз (когда я перерегистрирую датчик) он будет регистрировать то же событие значения, которое было поймано ранее (при перемещении телефона) . Если я даю onSensorChanged возможность запускаться дважды (используя счетчик), то он обнаруживает правильное значение и дважды регистрирует это значение.
В чем проблема с методом, вызываемым только один раз?