В продолжительной операции я показываю всплывающее диалоговое окно (созданный из ProgressDialog
предотвратить другие операции).
Я сделал это не подлежащим отмене с setCancelable(false)
, таким образом, я не могу закрыть его с помощью кнопки "Назад", но удивительно, Поисковая аппаратная кнопка отклоняет диалоговое окно!
Более точно приложение глобального поиска отображено, и когда я возвращаюсь к своему приложению, диалоговое окно было отклонено.
Какая-либо идея, как препятствовать тому, чтобы диалоговое окно было отклонено?
Вы должны создавать свои диалоги через событие Activity onCreateDialog , так как это точка, в которой они управляются Activity, и они будут восстановлены, когда активность возобновится.
Обратный вызов для создания диалогов, которые управляются (сохраняются и восстанавливаются) для вас с помощью действия.Если вы используете 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);
}
}