В моем приложении есть WebView
, который загружает любой URL-адрес из Интернета. Теперь иногда из-за медленных сетей страница загружается долго и пользователь видит только пустой экран.
Я хочу показать ProgressBar
во время загрузки WebView
и скрыть ProgressBar
при полной загрузке WebView
.
Я знаю, как использовать ProgressBar
и AsyncTask
, но вот моя проблема.
Это код, который я использую для загрузки моего 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;
}
}
Теперь, если я попытаюсь показать ProgressBar
с помощью AsyncTask
s, тогда я думаю, мне нужно будет указать код для загрузки URL-адреса в функцию doInBackGround()
моей AsyncTask
и показать ход выполнения функции onProgressUpdate()
.
Но как мне загрузить URL-адрес внутри doInBackground(), поскольку doInBackground()работает в потоке без пользовательского интерфейса, и я не смогу использовать mWebView .loadUrl(web_URL)
внутри него.
Есть предложения? Я упускаю что-то очевидное? Пожалуйста, помогите мне.