【发布时间】:2014-03-31 18:00:53
【问题描述】:
我有一个程序,我在其中查阅谷歌电子表格,我在 AsyncTask 中执行,但速度很慢,所以我想放置一个 ProgressDialog,我在 onPreExecute 方法上显示它,但我的程序无法执行 doInBackground 方法,但是我可以看到应用程序通过 Log.i 进入此方法,但什么也不做,我可以看到进度对话框,但没有别的,就像一个无限的 bucle
我的 AsyncTask 是这样的:
private class GestionDatos extends AsyncTask<Void, Void, ArrayList<String>> {
@Override
protected void onPreExecute(){
super.onPreExecute();
mProgress = ProgressDialog.show(MainActivity.this, "Trabajando", "Espere por favor");
}
@Override
protected ArrayList<String> doInBackground(Void... params) {
SpreadsheetService service = new SpreadsheetService("com.banshee");
ArrayList<String> nombres = new ArrayList<String>();
String idAnterior = "idAnterior";
try {
String urlString = "My URL";
URL url = new URL(urlString);
ListFeed feed = service.getFeed(url, ListFeed.class);
for (ListEntry entry : feed.getEntries()) {
CustomElementCollection elements = entry
.getCustomElements();
String id = elements.getValue("Codigo");
if (idAnterior.compareTo(id) != 0) {
idAnterior = id;
String name = elements.getValue("Profesor");
nombres.add(name);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
return nombres;
}
@Override
protected void onPostExecute(ArrayList<String> result){
super.onPostExecute(result);
mProgress.dismiss();
values = result;
}
}
对不起,我的英语不好,请耐心等待,我是一个noob android程序员
【问题讨论】:
-
摆脱
super.onPostExecute(result); -
感谢您的快速回答petey,但不幸的是我的ProgressDialog一直在运行......非常感谢你:)
-
哦,我怎么会错过这个,把
super.onPreExecute();也去掉 -
感谢您的宝贵时间,但我的应用仍然无法运行
标签: android android-asynctask progressdialog