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