2014-02-13 3 views
-1

Кажется, что этот класс не работает, потому что он никогда не публикует прогресс. onPostExecute фактически работает. Но этот класс в основном зависит от progressUpdate.AsyncTask не делает onProgressUpdate Android

class DoBackgroundStuff extends AsyncTask<String, Integer, String> { 

    @Override 
    protected String doInBackground(String... a) { 

     String rawContactsDl; 
     while(true) { 

      if (isFinished == true) { 
       backgroundStopped = true; 
       break; 
      } 

      //DO SOME STUFF 
      publishProgress(1); 

      try { 
       Thread.sleep(3000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
     return "done"; 
    } 

    protected void onProgressUpdate(int progress) { 
     Log.i("VERBOSE","onProgress " + progress); 
     adapter.notifyDataSetChanged(); 
    } 

    protected void onPostExecute(String result) { 
     Log.i("VERBOSE","onPosts " + result); 
     adapter.notifyDataSetChanged(); 
    } 

} 
+1

isFinished == истинные? – ElDuderino

+2

Oh The Man! Бесконечная петля –

ответ

8

Ваш onProgressUpdate должен выглядеть так:

protected void onProgressUpdate (Integer... values) 

всегда использовать @Override ловить такие ошибки

5

Подпись onProgressUpdate() неверна. Он должен быть

protected void onProgressUpdate(Integer... progress) 
+0

Привет. Вы можете увидеть мой вопрос. – Piyush

Смежные вопросы