2013-07-02 3 views
1

J'ai le problème avec des fragments où je crée dans mon constructeur fragment imbriquéfragments mContext et la collecte des ordures

Context mContext = getActivity(); 

, mais après une longue période sans utilisation de mon application mContext semble être des ordures collectées et quand je reprendre l'activité la valeur est maintenant nulle.

Je pensais à mettre une vérification null mContext sur le onResume de mon fragment. Est-ce la meilleure façon de gérer cette erreur. Ce problème se produit à plusieurs endroits.

Répondre

0

Si votre Activity n'est pas visible, le Activity va à la méthode onStop de son cycle de vie, le Activity peut être des déchets collectés par le système d'exploitation tout moment le système d'exploitation se sent comme.

Vous ne devez pas compter sur Context après que le Activity n'est pas visible.

Toujours obtenir un Context frais lorsque vous reprendre la Activity et ne comptez pas sur NullPointer contrôles quand vous ne devriez pas être obtenir un NullPointer en premier lieu ;-)

Voir http://developer.android.com/training/basics/activity-lifecycle/pausing.html et http://developer.android.com/training/basics/activity-lifecycle/stopping.html pour référence .

EDIT: Citation du dernier lien:

Lorsque votre activité reçoit un appel à la méthode onStop(), il est plus visible et devrait libérer la quasi-totalité des ressources qui ne sont pas nécessaires alors que la l'utilisateur ne l'utilise pas. Une fois que votre activité est arrêtée, le système peut détruire l'instance si elle doit récupérer la mémoire système.