Вот мое решение для этого.Проблема с ПД возникает только тогда, когда приложение выходит из кнопки «назад» (обычно, когда пользователь нажимает на нее несколько раз, и только иногда (не всегда) ПД вызывается, когда приложение уже уничтожено. Увольнение ПД onDestroy
не работаетпо какой-то причине, и когда я попробовал это, каждое нажатие кнопки Назад закрывало приложение, хотя canGoBack()
было установлено в значение true. Вместо этого я отклонял PD на goBack
, что в первую очередь является событием, которое вызывает столкновение,и я делаю это прямо перед finish()
. Если приложение обычно выходит из goBack, то, во-первых, проблем нет.
Кстати, «разница» предназначена для того, чтобы позволить пользователю быстро выйти из приложениящелкните (400 мс между двумя щелчками) вместо перехода от страницы к странице.
Надеюсь, это кому-нибудь поможет ...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
difference = System.currentTimeMillis() - startTime;
if (wView.canGoBack() && difference > 400) {
wView.goBack();
} else {
dismissProgressDialog();
finish();
}
startTime = System.currentTimeMillis();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
private void dismissProgressDialog() {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
}