我有一個程序,我諮詢谷歌電子表格,我做它在一個AsyncTask,但是很慢,所以我想把一個ProgressDialog,我展示onPreExecute方法,但我的程序可以'執行doInBackground方法,但我可以看到應用程序進入這種方法對Log.i,但不做任何事情,我可以看到進度對話框,但沒有別的,它就像一個無限bucle我的AsyncTask被困在doInBackground()永遠
我的的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;
}
}
對不起,我的英文不好,並請耐心等待,我是小白的Android程序員
擺脫'super.onPostExecute(result);' – petey
謝謝你的快速回答petey,但不幸的是我的ProgressDialog保持運行並運行並運行......非常感謝你太多:) – RobertoB
哦,我怎麼會錯過這個,擺脫'super.onPreExecute();'以及 – petey