Вы должны создать свои диалоговые окна с помощью события onCreateDialog действия, поскольку именно в этом месте они управляются действием, и они будут восстановлены после возобновления действия.
Обратный вызов для создания диалогов, которые управляются (сохраняются и восстанавливаются) для вас действием. Если вы используете showDialog(int)
, действие будет вызывать этот метод в первый раз, а затем будет зависать от него. Любое диалоговое окно, созданное этим методом, будет автоматически сохранено и восстановлено для вас, в том числе отображается ли оно. Если вы хотите, чтобы действие управляло сохранением и восстановлением диалогов для вас, вы должны переопределить этот метод и обработать все идентификаторы, которые передаются в showDialog (int). Если вы хотите подготовить свой диалог до его показа, переопределите onPrepareDialog(int, Dialog)
.
Пример использования:
public class MyClass extends Activity {
// ........ //
static final int DATE_DIALOG_ID = 1;
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,
mDay);
}
return null;
}
public void launchSetDate() {
showDialog(DATE_DIALOG_ID);
}
}