我正在使用WebView查看我的离线网页,其中包含几个名为1.html,2.html的html页面,主页面为index.html。它只有一个Mainactivity,现在我在下面使用按两次时退出应用程序的代码。如果按下一次,我想添加返回上一页的功能,按两次后退出应用程序。 这是现在的代码,如果按两次退出应用程序
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 :(得分:0)
我不太确定它是一个好的模式,因为它会让用户感到困惑,如果你想要双回来退出活动,而单回来转到上一页,你应该考虑为活动添加一个后退按钮标题,用户将有一个专用的后退按钮。尽管如此,在这种情况下您可以做的是在超时到期后转到上一页,如下所示
@Override
public void onBackPressed() {
if (doubleBackToExitPressedOnce) {
//super.onBackPressed(); use finish instead to close activity
finish();
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Please click BACK again to exit",Toast.LENGTH_SHORT).show();
goBack();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
public void goBack(){
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
finish();
}
}
希望它有所帮助,Goodluck
答案 1 :(得分:0)
boolean isDouble = false;
private int DURATION = 1000;
@Override
public void onBackPressed() {
if (isDouble) {
finishAndRemoveTask();
return;
}
isDouble = true;
finish();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
isDouble=false;
}
}, DURATION);
}