我正在尝试使用历史记录作为检查来退出应用程序。主页按钮将页面重新加载到google.com,但即使在我调用.clearHistory()之后仍然保留页面历史记录。
以下是菜单处理/选择的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.Home:
mWebview.loadUrl("http://google.com");
mWebview.clearHistory();
return true;
case R.id.About:
Toast.makeText(this, "TEXT", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
以下是退出功能的代码:
@Override
public void onBackPressed() {
if (mWebview.canGoBack()) {
mWebview.goBack();
}
else {
super.onBackPressed();
}
}
答案 0 :(得分:17)
根据this post,您需要在页面加载时调用clearHistory:
似乎历史记录清除了当前页面之前的所有内容 因此,如果您的浏览器位于“A”页面,则清除历史记录并导航至 页面“B”你的历史将是“A”“B”,而不只是“B”,但如果你清楚 “B”完成加载时的历史记录只有“B”
因此,您应该在clearHistory
之后调用loadUrl
,而不是onPageFinished
或onProcessChanged
。