В моем приложении у меня есть 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) внутри него.
Любые предложения? Мне что-то не хватает? Пожалуйста, направляйте меня.