У меня есть другое решение для этого, и я хотел бы знать, кажется ли вам это верным: вместо того, чтобы отказаться от onDestroy, который кажется ведущим решением, я расширяю ProgressDialog ...
public class MyProgressDialog extends ProgressDialog {
private boolean isDismissed;
public MyProgressDialog(Context context) {
super(context);
}
@Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
dismiss();
}
@Override
public void dismiss() {
if (isDismissed) {
return;
}
try {
super.dismiss();
} catch (IllegalArgumentException e) {
// ignore
}
isDismissed = true;
}
Это предпочтительнее, AFAIC, потому что вам не нужно держать диалог прогресса в качестве участника, просто выстрелить (показать) и забыть