Android - активность перезагружается при ротации - PullRequest
2 голосов
/ 11 мая 2011

Я знаю, что это дублирующий вопрос, и я знаю, что когда устройство поворачивается, метод OnCreate вызывается снова, и я хочу, чтобы он оставался таким;Я не хочу проходить через шаги по переопределению onConfigurationChanged или подклассификации моего класса Application, потому что android выполняет перезагрузку наилучшим образом (особенно при сохранении текущих значений и состояния).

Однако я имеюнекоторые команды внутри метода OnCreate, которые я не хочу выполнять, если активность перезагружается из-за вращения, поэтому есть ли свойство / метод, который может сказать, запущен ли OnCreate из-за первого запуска приложения или из-за изменения ориентации?

Например:
if(< OnCreate triggered due to Orientation > == false)<br> // Execute my commands...<br> else<br> // Do nothing...

В качестве альтернативы, есть ли у нас какие-либо события в Android, которые должны запускаться перед OnCreate или перед OnConfigurationChanged?

Ответы [ 3 ]

0 голосов
/ 11 мая 2011

Попробуйте использовать onSaveInstanceState , если вы хотите сохранить некоторую информацию о состоянии до того, как ваша деятельность будет уничтожена, а затем onRestoreInstanceState, чтобы получить ее.

Вы также можете использовать getRequestedOrientation () в onCreate, чтобы получить новую ориентацию.

Вы также можете использовать это в onCreate ()

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int orientation = display.getOrientation();
0 голосов
/ 11 мая 2011

Класс Activity имеет специальный метод onRetainNonConfigurationInstance ().Этот метод может использоваться для передачи произвольного объекта вашему будущему я, и Android достаточно умен, чтобы вызывать этот метод только при необходимости.

Подробнее здесь .

0 голосов
/ 11 мая 2011

Почему бы не сохранить текущую ориентацию в SharedPreferences и сравнить текущую ориентацию с сохраненным значением в onCreate (а затем сохранить новую ориентацию в SharedPreferences)?

Это должно обеспечить требуемую функциональность, если только ячто-то неправильно понял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...