5

Am AsyncTask, um unter Verwendung von Bildern in meiner Tätigkeitandroid AsyncTask mit Aktivität Lifecycle

geht der Ablauf wie folgt herunterladen:

protected void onPreExecute() { 
     \\begin animation 
} 

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

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

bis hier alles in Ordnung, das Problem starten, wenn ich in den Hintergrund gehen, während die asynctask funktioniert manchmal bekomme ich eine Ausnahme nullpointer in der Animation stoppt, weil die Ansichten nicht mehr gültig (ich denke),

Ich kann prüfen, vor der Stop-Animation, wenn die Aktivität in für ist Eground, aber ich bevorzuge es, diesen Ansatz zu vermeiden, was kann ich noch tun?

+0

Versuchen Sie es surrund mit 'try {} fange {}'? –

+0

ich stimme zu, ich kann diese Ausnahme fangen, aber ich bevorzuge es, diese Art von Trick zu vermeiden –

+0

wechseln Sie zu einer anderen Aktivität, wenn Sie in die onPostExecute kommen() ?? –

Antwort

2

Ich ziehe den asyncTask Ansatz zu vermeiden und die Bilder in einem einfachen Faden zum Download, die auch speichert sie Schicht Persistenz wie Dateisystem und sendet dann ein Intent,

Hinweis: wenn die Aktivität Im Hintergrund wird die Intent (wenn Sie Ihren Empfänger in onResume und onPause wie beraten registrieren und abmelden) nicht empfangen werden, um solche Fälle innerhalb onResume zu vermeiden, können Sie überprüfen, ob es ein Update für Sie gibt

+0

Dies ist Super Cheat/Workaround/falsche Lösung ..; ( – Ewoks