У меня есть диалог прогресса, который реализовал метод onCancel, потому что я хочу отменить его, когда пользователь нажимает клавишу возврата, но проблема в том, что когда пользователь нажимает на экран, диалог отменяется, вызывается метод OnCancel.Метод Dialog onCancel вызывается, когда пользователь нажимает на экран
Как я могу избежать этого?
Это код:
public void showProgressDialog(Context ctx, String text_connecting) {
if (this.progress == null) {
this.progress = ProgressDialog.show(ctx, "", text_connecting, true,
true);
this.progress.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
hideProgressDialog();
}
});
}
this.progress.show();
}
Вы должны проверить, если диалог прогресс отображается в данный момент (в потоке), если отображается трек событие движения в потоке. Если движение отключено при отображении set cancel, возможно, значение false. Вы также можете использовать локальную трансляцию, если хотите избавиться от постоянного опроса и поддержания занятости процессора. – Skynet
Еще одним решением было бы переопределить ваш onBackPress. Установите диалог для отмены и нажмите на кнопку отменить. Таким образом, ваш диалог не будет отменен при касании. Вот как это и правильно! – Skynet