2014-03-31 34 views
0

我有一個程序,我諮詢谷歌電子表格,我做它在一個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程序員

+0

擺脫'super.onPostExecute(result);' – petey

+0

謝謝你的快速回答petey,但不幸的是我的ProgressDialog保持運行並運行並運行......非常感謝你太多:) – RobertoB

+0

哦,我怎麼會錯過這個,擺脫'super.onPreExecute();'以及 – petey

回答

0

最後它似乎是一個硬件問題,我在一個功能強大的計算機上執行代碼並工作,也許是由於我的應用程序凍結了繁重的工作?我不知道,謝謝

+0

這是一個有效的答案。如果有人對這種情況不滿意,答覆應該是投票結束這個問題作爲一次性的/不可複製的情況,而不是提出問題提問者**陳述**實際決議的答案。 *。或者如果有人認爲有更好的答案或這不是一個明智的決議,那麼發表一個答案或留下評論。但是不要舉報提問者*他們自己的問題有效* *。 –

相關問題