【发布时间】:2012-06-29 18:55:24
【问题描述】:
在我的应用程序中,我有一个 WebView,它可以从 Internet 加载任何 URL。现在,有时由于网络速度较慢,页面需要很长时间才能加载,用户只能看到一个空白屏幕。
我想在WebView 加载时显示ProgressBar,并在WebView 完全加载时隐藏ProgessBar。
我知道如何使用ProgressBar 和AsyncTasks,但这是我的问题。
这是我用来加载我的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;
}
}
现在,如果我尝试 使用 AsyncTasks 显示 ProgressBar,那么我想我将不得不在我的 @987654338 的 doInBackGround() 函数中提供加载 URL 的代码@ 并通过onProgressUpdate() 函数显示进度。
但是,当 doInBackground() 在 非 UI 线程 上运行时,我如何在 doInBackground() 中加载 URL,我将无法使用 @987654340 @在里面。
有什么建议吗?我错过了一些明显的东西吗?请指导我。
【问题讨论】:
标签: android android-asynctask android-webview android-progressbar