私のアプリケーションにはWebView
、インターネットから任意の URL をロードする があります。現在、ネットワークが遅いために、ページの読み込みに時間がかかり、ユーザーに空白の画面しか表示されないことがあります。
ProgressBar
ロードされる間を表示し、完全にWebView
ロードされると非表示にします。ProgessBar
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;
}
}
ここで、 using sを表示ProgressBar
AsyncTask
doInBackGround()
しようとすると、myの関数で URL をロードし、関数AsyncTask
の進行状況を表示するコードを指定する必要があると思いonProgressUpdate()
ます。
しかし、 doInBackground()は非 UI スレッドで実行され、その中で使用できないため、doInBackground() 内に URL をロードするにはどうすればよいですかmWebView.loadUrl(web_URL)
。
助言がありますか?明らかな何かが欠けていますか?私を案内してください。