第一次调用WebViewClient时加载页面缓慢

时间:2012-05-14 07:33:07

标签: android android-webview 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。我需要加快速度。任何建议

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我认为WebView会在应用的临时目录中创建一个数据库,原因有各种各样(例如网络缓存)。 第一次从应用程序调用WebView时会创建此DB。在后续调用中,它会被重复使用。

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