Przeczytałem podobne wątki tutaj, nawet googled, ale nie ma rozwiązania.Android/Java: onProgressUpdate() nie jest wywoływana?
Funkcja onProgressUpdate() nie jest wywoływana.
Oto kod:
public class DoHardWork extends AsyncTask {
@Override
protected Object doInBackground(Object... params) {
publishProgress("Requesting XML data");
this.requestData();
publishProgress("Returning results");
this.returnResults();
return null;
}
protected void onProgressUpdate(String text) {
super.onProgressUpdate(text);
MainActivity.setLog(text);
}
}
Próbowałem ustawienie przerwania w onProgressUpdate() i nigdy nie nazywa. To tak, jakby kod był po prostu ignorowany.
Ktoś miał podobny problem i okazało się, że jest to zwykłe zaćmienie, ale próbowałem go zrestartować bez powodzenia.
Wszelkie pomysły?
To się udało! Jestem trochę nowy w Javie, więc starałem się, aby był tak prosty, jak to możliwe, nie wiedziałem, że generics był wymagany. Jeszcze jedno pytanie, dlaczego nie mogę nazwać publishProgress() z onCancelled()? Wygląda na to, że powinno być możliwe. – qwerty
Możesz wywołać metodę pubProgress(), ale na drugiej wartości generycznej musisz umieścić Void, tak: DoHardWork rozszerza AsyncTask. Spójrz na ten link http://developer.android.com/reference/android/os/AsyncTask.html –
Pablo
Jeszcze lepiej, dodaj @Override do deklaracji metody, nie będziesz musiał zgadywać, czy zrobiłeś to dobrze, kompilator zrobi to za Ciebie. –