Как получить OrientationEventListener.OnorientationChanged (), чтобы назваться только при вращении пользовательского интерфейса [дублировать

StackOverflow https://stackoverflow.com/questions/5810988

Вопрос

Возможный дубликат:
Как обнаружить вращение экрана

Привет,

Все, что я хочу сделать, это обнаружить изменение ротации в моем приложении. Тем не менее, я думаю, что нашел ошибку в системе Android. Если вы прочитаете это:

http://developer.android.com/guide/practices/optimizing-for-3.0.html#landscape

Говорят, что каждый раз, когда устройство меняет ориентацию, Activity.Ondestroy (), и называется Activity.Oncreate (). Поэтому я подумал, что могу просто использовать метод Display.getRotation (), чтобы выяснить мою новую ориентацию в методе Activity.Oncreate (). Тем не менее, я обнаружил, что по какой -то причине oncreate () (или даже onresume ()) никогда не вызывается, если вы быстро переворачиваете устройство на 180 градусов. Я доказал, что это использует тосты. Мое тост в моей деятельности. Oncreate () (или в активности. Onresume ()) появится с поворотами на 90 градусов, но не с 180 градусами с переворотами устройства. Так что дело в том, что утверждение в статье выше не всегда верно.

Итак, я решил использовать OrientationEventListener.onorationChanged (). Это работает, но я не хочу, чтобы OnoRientationChanged () был вызван снова и снова в моем приложении (оно вызывается при каждом изменении степени устройства). Это замедлит все остальное, что я делаю. Я хочу, чтобы это было вызвано только тогда, когда я поворачиваю экран достаточно, чтобы получить изображение на экране, чтобы повернуть, чтобы я мог выяснить, если я на rowtation_0, rowation_90, rowation_180 или rowation_270.

Это с Xoom, конечно.

Какие-либо предложения

Это было полезно?

Решение

Ответил подробно здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top