WebView上的WebView clearHistory()是否具有Goback()功能?

时间:2013-11-22 17:31:33

标签: java android webview

  1. 我正在尝试使用历史记录作为检查来退出应用程序。主页按钮将页面重新加载到google.com,但即使在我调用.clearHistory()之后仍然保留页面历史记录。

  2. 以下是菜单处理/选择的代码:

    @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);
      }
    }
    
  3. 以下是退出功能的代码:

    @Override
    public void onBackPressed() {
      if (mWebview.canGoBack()) {
        mWebview.goBack();
      }
      else {
        super.onBackPressed();
      }
    }
    

1 个答案:

答案 0 :(得分:17)

根据this post,您需要在页面加载时调用clearHistory:

  

似乎历史记录清除了当前页面之前的所有内容   因此,如果您的浏览器位于“A”页面,则清除历史记录并导航至   页面“B”你的历史将是“A”“B”,而不只是“B”,但如果你清楚   “B”完成加载时的历史记录只有“B”

因此,您应该在clearHistory之后调用loadUrl,而不是onPageFinishedonProcessChanged