我一直在Android应用程序中工作,主要包含只有一个Mainactivity的本地html页面。我正在使用此代码退出应用程序,按两次将退出应用程序。 例如,我在assets文件夹中有两个html文件,一个页面链接到其他文件夹。如果我从A到B,那么如果按下后退按钮一次..它应该将我重定向到上一页,如果按两次将退出应用程序。现在代码我用来退出应用程序,如果按两次是...
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
我想实现方法,如果按下一次将重定向到上一页,如果按两次将退出应用程序。 任何帮助将不胜感激。
答案 0 :(得分:1)
你可以这样做:
boolean doubleBackToExitPressed = false;
long lastBackPressTime = 0;
@Override
public void onBackPressed() {
// assuming the gap between two presses is 500ms
long currentTime = System.currentTimeMillis();
if (currentTime - lastBackPressTime < 500) {
doubleBackToExitPressed = true;
super.onBackPressed();
return;
} else {
lastBackPressTime = System.currentTimeMillis();
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (!doubleBackToExitPressed) {
// go to the previous webpage
} else {
doubleBackToExitPressed = false;
}
}
}, 510); // trigger this after 510 milli seconds
}
在此代码中,在第一次背压时,保存当前时间,在第二次背压时,将其与lastBackPressTime进行比较。如果间隙小于500毫秒,则调用super.onBackPressed()
。
处理程序内的代码在510毫秒后触发,并检查doubleBackToExitPressed
是否为false
。