У меня есть Активность, которая при определенных обстоятельствах вызывает AlertDialog.
Однако, если вы поверните устройство, действие будет уничтожено и воссоздано, а AlertDialog исчезнет.
Как люди справляются с этим?
Было бы достаточно легко сохранить какой-либо флаг в saveInstanceState, позволяющий Activity знать, что он снова генерирует AlertDialog при создании, но что если вашему AlertDialog требуется много данных, и эти данные являются динамическими? Это очень скоро станет ужасно.
Особенно в моем случае:
Когда мое приложение хочет выполнить вызов веб-службы, оно загружает IntentService, передает Intent с необходимыми данными (учетные данные и данные для отправки в веб-службу) и запускается. Если из-за ошибки входа в систему обрабатывается Intent, обрабатываемый IntentService, он передает сообщение, которое услышит моя деятельность. Я расширил Activity и ListActivity и добавил к ним BroadcastReceiver. Деятельность моего приложения вытекает из этого. Затем они выскакивают AlertDialog, запрашивая учетные данные пользователя. Дополнения оригинального Intent также передаются, поэтому после успешного входа в систему он может быть повторно обработан. К сожалению, когда пользователь меняет ориентацию экрана (например, вытаскивая аппаратную клавиатуру), AlertDialog собирается исчезнуть.