Android Asyntask: Verwenden Sie eine schwache Referenz für den Kontext, um den Bildschirm zum Drehen des Geräts zu vermeiden
In Apress Pro Android 4 der Autor hat gesagt, dass:
[...] Kontext der derzeit ausgeführten Tätigkeit nicht mehr gültig, wenn das Gerät gedreht wird. [...] Ein Ansatz ist die Verwendung einer schwachen Referenz auf die Aktivität, statt eine harte Referenz [...]
Aber der Autor nur empfehlen, dieses, und nicht sagen, wie es gemacht wird. Wer dies getan hat, bevor Sie bitte geben Sie mir ein Beispiel.
InformationsquelleAutor der Frage hqt | 2012-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Irgendwo in Ihrem
AsyncTask
Sie übergeben möchten in Ihrer Tätigkeit. Dann sparst du den Verweis in eine schwache Referenz. Dann können Sie dereferenzieren und verwenden Sie es wieder inonPostExecute
.Klasse Mitglied:
Irgendwo in
AsyncTask
wahrscheinlich Konstruktor oderonPreExecute
:In
onPostExecute
:InformationsquelleAutor der Antwort kabuko
Hier ist ein Beispiel von WeakReference zum speichern eines Kontext;
Nun können wir diese weakReference zu tun, Tätigkeit/Kontext verwandter arbeiten.
InformationsquelleAutor der Antwort Akhil
Wenn Sie möchten, um die Wiederherstellung des vorherigen Aktivität, warum nicht gehen für die onSaveInstanceState und später wiederherstellen.
Überprüfen Sie diesen link für mehr details
Speichern des anwendungszustands
InformationsquelleAutor der Antwort prijupaul