Android Asyntask: Utiliser de faibles référence pour le contexte pour éviter un dispositif de rotation de l'écran
Dans Apress Pro Android 4 l'auteur a dit que:
[...] le contexte dans lequel l'activité sera plus valable lorsque l'appareil est en rotation. [...] Une approche consiste à utiliser une référence faible de l'activité en lieu et place d'une unité de référence [...]
Mais l'auteur suggère cela, et ne permet pas de savoir comment il est fait. Qui a fait cela avant merci de me donner un exemple.
Vous devez vous connecter pour publier un commentaire.
Quelque part dans votre
AsyncTask
vous aurez envie de passer dans votre activité. Ensuite, vous économiserez de cette référence dans une référence faible. Ensuite, vous pouvez déréférencement et de l'utiliser à nouveau enonPostExecute
.Membre de la classe:
Quelque part dans
AsyncTask
, probablement constructeur ouonPreExecute
:Dans
onPostExecute
:activity
sera toujours référence non valide si le GC n'a pas un coup de pied dans le temps. S'il vous plaît corrigez-moi si je me trompe.Voici un exemple de WeakReference pour stocker un contexte;
Maintenant, nous pouvons utiliser cette weakReference à faire de l'Activité/le Contexte de travail connexe.
Si vous souhaitez restaurer l'activité précédente, pourquoi ne pas aller pour onSaveInstanceState et de les restaurer plus tard.
Vérifier ce lien pour plus de détails
Économiser de l'état de l'application