Как обрабатывать активность при изменении ориентации?

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

Вопрос

Я пишу деятельность, которая загружает данные с сервера и отображает его в виде списка с помощью ArrayAdapter. Для этого я показываю диалог прогресса, т.е. загрузка, пока он загружает все данные с сервера. Затем я отклоняю диалог в обработчике. Моя проблема заключается в том, что когда когда-либо я изменяю ориентацию, диалоговое окно прогресса снова показано, что не требуется, потому что все данные отображаются уже?

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

Решение

Я бы сказал, у вас есть два варианта:
Либо вы заставляете свою деятельность не сможете изменить ориентацию:

<activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation"> 

в вашем манифесте (документация), который скажет систему, что вы хотите справиться с ориентацией, и в этом случае вы ничего не сделаете. Но вы предпочитаете добавить какой-код в onPause() а также onSaveInstanceState() Поскольку эта активность может быть прервана Android, когда вы применяете телефонный звонок, например. Таким образом, вам нужно обрабатывать некоторые экономии.

Или вы выбираете, чтобы предотвратить отображение диалогового окна, когда уже отображается, или когда работает ваш фоновый поток. Это просто вы используете Asynctask для вашей детали загрузки, потому что вы можете использовать Asynctask.getStatus. который вернет вас Статус задачи. Отказ Если это уже в готовом статусе, вы должны отменить диалог.

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