Как получить OrientationEventListener.OnorientationChanged (), чтобы назваться только при вращении пользовательского интерфейса [дублировать
-
25-10-2019 - |
Вопрос
Возможный дубликат:
Как обнаружить вращение экрана
Привет,
Все, что я хочу сделать, это обнаружить изменение ротации в моем приложении. Тем не менее, я думаю, что нашел ошибку в системе 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, конечно.
Какие-либо предложения
Решение
Ответил подробно здесь.