Опитвам се да получа само 1 събитие от сензора за ориентация.
Моят код е:
@Override
public void onSensorChanged(SensorEvent event) {
Log(event);
unregisterSensor(...);
}
След това в нишка на всеки 1000ms правя:
registerSensor();
Thread.sleep(2000);
Проблемът е, че ако дерегистрирам сензора след края на метода (както направих), тогава следващия път (когато пререгистрирам сензора) той ще регистрира същото събитие със стойност, уловено преди (докато преместих телефона) . Ако дам на onSensorChanged възможността да стартира два пъти (използвайки брояч), тогава той открива правилната стойност и регистрира тази стойност два пъти.
Какъв е проблемът с метода, извикан само веднъж?