5

używam AsyncTask aby pobrać obrazy w moim aktywnościandroid AsyncTask z działalności cyklu

przepływ idzie tak:

protected void onPreExecute() { 
     \\begin animation 
} 

protected IUpiResponse doInBackground(String... params) { 
     \\ download the image 
} 

protected void onPostExecute(IUpiResponse upiResponse) { 
     \\stop the animation 
} 

aż tu wszystko w porządku, rozpocznie problem jeśli pójdę na tle podczas asynktask działa czasami otrzymuję wyjątek nullpointer w zatrzymaniu animacji, ponieważ widoki nie są już ważne (domyślam się),

Mogę sprawdzić przed animacją zatrzymania, jeśli aktywność jest dla ale wolę unikać tego podejścia, co jeszcze mogę zrobić?

+0

Czy próbowałeś tego dokonać z 'try {} catch {}'? –

+0

Zgadzam się, że mogę złapać ten wyjątek, ale wolę unikać tego rodzaju sztuczek –

+0

czy przechodzisz na inną aktywność, kiedy wchodzisz na onPostExecute() ?? –

Odpowiedz

2

Wolę uniknąć podejścia asyncTask i pobrać obrazy w prosty gwint, co oszczędza również im wytrwałości warstwy, takie jak system plików, a następnie wysyła Intent,

Uwaga: jeżeli działalność w tle Intent (jeśli zarejestrujesz i wyrejestrujesz swój odbiornik w trybie OnResume i onPause zgodnie z zaleceniami) nie zostanie odebrany, aby uniknąć takich przypadków wewnątrz onResume możesz sprawdzić, czy czeka na Ciebie aktualizacja

+0

To jest super cheat/workaround/fałszywe rozwiązanie ..; ( – Ewoks

Powiązane problemy