Webview with asynctask on Android
13,851
Don't use AsyncTask, as you are not in charge of loading the webview. If you want to show a progress dialog, here is how to do it.
private ProgressDialog dialog = new ProgressDialog(WebActivity.this);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
Bundle extras = getIntent().getExtras();
String url=extras.getString("adres");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if (dialog.isShowing()) {
dialog.dismiss();
}
}
});
dialog.setMessage("Loading..Please wait.");
dialog.setCanceledOnTouchOutside(false);
dialog.show();
webView.loadUrl(url);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
}
The idea is that you show the dialog, you start loading the url, and when the webclient sees that the page has finished loading, it dismisses the dialog.
Author by
Serkan
Updated on June 04, 2022Comments
-
Serkan almost 2 years
i want to do it which the progress dialog waits the loading item on webview. How can i do it which
dialog.dismiss()
event depend on loading item on webview?public class asynctask extends AsyncTask<Void, Void, Void> { private ProgressDialog dialog = new ProgressDialog(WebActivity.this); @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub
in there how can i do it ??
dialog.dismiss();
dialog disappear without waiting
} @Override protected void onPreExecute() { // TODO Auto-generated method stub dialog.setMessage("Loading..Please wait."); dialog.show(); dialog.setCanceledOnTouchOutside(false); } @Override protected Void doInBackground(Void... params) { // TODO Auto-generated method stub return null; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); webView = (WebView) findViewById(R.id.webView1); Bundle extras = getIntent().getExtras(); String url=extras.getString("adres"); webView.setWebViewClient(new WebViewClient()); webView.loadUrl(url); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); new asynctask().execute();
}