Моя цель:Toast «Нажмите снова, чтобы закрыть» дает ошибку при нажатии назад слишком часто
Когда посетитель возвращается к первой странице моего приложения, тост появляется, чтобы посетитель знал, что он снова нажмите кнопку «Назад» в течение 3 секунд, чтобы закрыть приложение для Android.
Конкретная проблема:
Когда вы вернулись на первую страницу и тосты появляется, код работает прекрасно, когда вы нажимаете назад только один раз, но когда появляется тост и нажимается назад больше, чем один раз, появляется следующее сообщение об ошибке: «(имя приложения) остановлено».
Кто-нибудь знает, что вызывает это сообщение об ошибке, и как я могу это решить?
MainActivity.java файл:
// Open previous opened link from history on webview when back button pressed
private Boolean exit = false;
@Override
// Detect when the back button is pressed
public void onBackPressed() {
if(webView.canGoBack()) {
webView.goBack();
}
else {
if (exit)
this.finish();
else {
Toast.makeText(this, "Press again to exit.",
Toast.LENGTH_SHORT).show();
exit = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
exit = false;
}
}, 3 * 1000);
}
}
}
Измените свой вопрос, чтобы включить трассировку стека, иначе мы должны угадать. – Simon
Попробуйте инициализировать ваш обработчик с помощью 'new Handler (Looper.getMainLooper())' – EpicPandaForce