web视图与AsyncTask的Android上 [英] Webview with asynctask on Android
本文介绍了web视图与AsyncTask的Android上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想这样做,它的进度对话框等待在的WebView 加载项。我怎样才能做到这一点而 dialog.dismiss()
事件取决于负载的项目上的的WebView
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
在那里我可以怎样做呢?
dialog.dismiss();
无需等待对话框消失
}
@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();
}
推荐答案
不要使用AsyncTask的,因为你是不是负责加载web视图中。如果你想显示一个进度对话框,这里是如何做到这一点。
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);
}
我们的想法是,你显示对话框,启动加载的URL,当Web客户端看到该页面已完成加载,它关闭对话框。
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.
这篇关于web视图与AsyncTask的Android上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文