Android-从Web获取XML数据(使用ASYNCTASK)和与Progress Bar相关问题
-
02-10-2019 - |
题
我正在使用HTTP GET/POST从Web获取XML数据。现在,我已经以简单的方式完成了(即没有折叠)。
根据下面的链接,我尝试使用带有线程的进度栏对话框来实现它http://www.ceveni.com/2009/09/sample-progress-bar-dialog-in-android.html
但是我怎么知道从网络获取XML的完成时间。(即 睡眠时间应该是什么,何时驳回进度栏对话框)
让我更多地了解我的问题=>在活动中,当用户单击“获取数据”按钮时,“进度栏”对话框应出现,并且仅当获取成功完成时才能消失。
我认为这可以通过”异型“但是不知道如何将该概念用于这个问题。
那我该怎么做呢?
解决方案
public void onClick() {
new FetchTask(context).execute(null);
}
public class FetchTask extends AsyncTask<Object, Object, Object > {
private ProgressDialog dlg;
private Context ctx;
public FetchTask(Context context) {
ctx = context;
}
@Override
protected void onPreExecute() {
dlg = new ProgressDialog(ctx);
dlg.setMessage("Loading....");
super.onPreExecute();
}
@Override
protected void onPostExecute(Object result) {
dlg.dismiss();
if ( result instanceof Exception ) {
// show error message
} else {
// display data
}
super.onPostExecute(result);
}
@Override
protected Object doInBackground(Object... params) {
try {
// String rawData = doPost("yourUrl");
// XMLTree data = yourParser.parse(rawData);
// return data;
} catch ( Exception e ) {
return e;
}
}
}
不隶属于 StackOverflow