在我的应用程序中,我有一个 WebView
从互联网加载任何 URL。现在,有时由于网络速度较慢,页面需要很长时间才能加载,用户只能看到一个空白屏幕。
我想显示 ProgressBar
而 WebView
被加载并隐藏 ProgessBar
当 WebView
完全加载时
我知道如何使用 ProgressBar
和 AsyncTask
s,但这是我的问题。
这是我用来加载我的 WebView
的代码。
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.loadUrl(web_URL);
这是我的自定义 WebViewClient
类
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
现在,如果我尝试 使用 AsyncTask
s 显示 ProgressBar
那么我想我将不得不提供代码以在我的 doInBackGround()
函数中加载 URL AsyncTask
并通过 onProgressUpdate()
函数显示进度。
但是,如何在 doInBackground() 中加载 URL,因为 doInBackground() 在 非 UI 线程 上运行,我将无法在其中使用 mWebView.loadUrl(web_URL)
。
有什么建议么?我错过了一些明显的东西吗?请指导我。
原文由 Swayam 发布,翻译遵循 CC BY-SA 4.0 许可协议
检查源代码。帮助您并解决您的问题…
我认为它对你有帮助。
谢谢。