Препятствуйте тому, чтобы ProgressDialog был распущен, когда я нажму кнопку поиска (Android)

В продолжительной операции я показываю всплывающее диалоговое окно (созданный из ProgressDialog предотвратить другие операции).

Я сделал это не подлежащим отмене с setCancelable(false), таким образом, я не могу закрыть его с помощью кнопки "Назад", но удивительно, Поисковая аппаратная кнопка отклоняет диалоговое окно!

Более точно приложение глобального поиска отображено, и когда я возвращаюсь к своему приложению, диалоговое окно было отклонено.

Какая-либо идея, как препятствовать тому, чтобы диалоговое окно было отклонено?

41
задан Joshua Pinter 24 September 2013 в 04:54
поделиться

1 ответ

Вы должны создавать свои диалоги через событие 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);
 }
}
1
ответ дан 27 November 2019 в 00:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: