2012-05-14 95 views
1

以下是我的WebViewClient代码。我通过点击一个按钮来调用这个类。第一次调用WebViewClient时页面加载速度较慢

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
     setContentView(R.layout.webview); 

     webView = (WebView) findViewById(R.id.webView1); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.setWebChromeClient(new WebChromeClient() { 
      public void onProgressChanged(WebView view, int progress) { 
       activity.setTitle("Loading..."); 
       activity.setProgress(progress * 100); 

       if (progress == 100) 
        activity.setTitle(R.string.app_name); 
      } 
     }); 

     webView.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onReceivedError(WebView view, int errorCode, 
        String description, String failingUrl) { 
       // Handle the error 
      } 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url); 
       return true; 
      } 
     }); 

     webView.loadUrl("http://mylink.com"); 
     // String customHtml = 
     // "<html><body><h1>Hello, WebView</h1></body></html>"; 
     // webView.loadData(customHtml, "text/html", "UTF-8"); 

    } 

} 

Error Image

其采取更多的时间来加载WebViewClient。我需要加快速度。任何建议

+0

我在想你可能连接到一个缓慢的网站?由于浏览器未缓存,第一次加载总是比较慢。如果这是你的网站,那么你需要看看你可以做些什么来加快网站。 – jamesc

回答

1

就我所见,代码没有问题。我强烈建议你检查一下你连接的Web服务器的性能,因为这很可能是你问题的原因。特别看看服务器的响应时间。要测试您的网络视图的性能,请尝试将网址设置为快速响应的网站,例如google.com。

1

我认为WebView会在应用程序的临时目录中为各种原因(如网页缓存)创建一个数据库。 此数据库在您首次从应用程序调用WebView时创建。在随后的调用中,它被重新使用。

因此,创建过程可能是您正在经历的过程。