在'webView.loadUrl'捐赠了asynk后,我没有立即看到该网页

时间:2014-10-17 07:48:55

标签: android webview android-asynctask

如何在加载所有网络数据之前等待显示webView? 我创建了这个asynktask草图:

@Override
protected Void doInBackground(String... params) {


    webView.setWebChromeClient(new WebChromeClient()); 
    webView.setWebViewClient(new WebViewClient()); 
    webView.getSettings().setJavaScriptEnabled(true);
    String url = params[0];
    webView.loadUrl(url);



    return null;
}

@Override
protected void onPreExecute() {
//progress = ProgressDialog.show(MainActivity.this,"wait","downloading URL");
    progressBar.setVisibility(View.VISIBLE);
}

@Override
protected void onPostExecute(Void result) {


            webView.setVisibility(View.VISIBLE);
            progressBar.setVisibility(View.GONE);



}

}

它可以工作但是这个代码的结尾,在onPostExecute之后我仍然看到webview加载的空白页面

1 个答案:

答案 0 :(得分:1)

loadUrl已经异步执行所有操作,因此立即调用onPostExecute。

如果要显示加载指示器,则需要使用:

mWebView.setWebViewClient(new WebViewClient() {

    public void onPageStarted (WebView view, String url, Bitmap favicon) {
        view.setVisibility(View.GONE);
        progressBar.setVisibility(View.VISIBLE);
    }

    public void onPageFinished(WebView view, String url) {
        view.setVisibility(View.VISIBLE);
        progressBar.setVisibility(View.GONE);
    }
});
webView.loadUrl(url);

当然会删除AsyncTask。

更多:here