Подтвердить что ты не робот

Можете ли вы запустить событие, когда Android Dialog будет уволен?

Скажем, у меня есть созданный диалог в Android-приложении, например:

private static ProgressDialog dialog;
dialog = ProgressDialog.show(MainActivity.this, "", "Downloading Files. Please wait...", true);

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

dialog.dismiss();

Причина, по которой я хочу это сделать, а не просто вызвать мой метод после dialog.dismiss();, заключается в том, что отклонение Dialog вызывается в статическом классе, а следующее, что я хочу сделать, это загрузить новое действие (которое невозможно сделать с помощью Задания внутри статического класса).

4b9b3361

Ответ 2

Конечно, вы можете проверить:

  public void onDismiss(DialogInterface dialogInterface)
  {
        //Fire event
  }

Ответ 3

Всякий раз, когда диалог закрывается либо нажатием PositiveButton, NegativeButton, NeturalButton, либо нажатием вне диалога, "onDismiss" всегда вызывается автоматически, так что делайте свои вещи внутри метода onDismiss(), например,

@Override
public void onDismiss(DialogInterface dialogInterface) {
    ...
}

Вам даже не нужно вызывать метод reject().

Ответ 4

Используйте метод setOnDismissListener для диалога.

dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
    @Override
    public void onDismiss(DialogInterface dialog) {
        if (mIsSettingsDirty)
            refreshRecyclerView();
    }
});

Ответ 5

Если вы находитесь в пользовательском диалоговом классе - переопределите dismiss(). Я рекомендую вставлять логику ДО super.dismiss(). Пример Kotlin:

override fun dismiss() {
    Utils.hideKeyboard(mContext, window)
    super.dismiss()
}