Passage de l'Activité à la non-activité de l'objet correctement
Dans mon application ive a obtenu un non-activité de l'objet dont c'est le rôle est d'être un gérant de classe.
de nombreuses fois j'ai besoin de passer "de la source de l'activité" à des méthodes comme paramètre pour que le gestionnaire de classe afin de faire quelques opérations sur cette activité.
par exemple, imaginons que nous avons MyActivity qui dois faire des toasts.
j'ai donc ce gestionnaire de classe appelé MyManager, et j'ai cette méthode en elle
raiseToast(Activity sourceActivity) {
Toast.makeText(sourceActivity, demo, Toast.LENGTH_LONG).show();
}
et de Myactivity de classe nous en appelant cette méthode de cette façon:
MyManager manager=new MyManager();
manager.raiseToast(MyActivity.this);
il fonctionne très bien.
ce que je pose la question ici, est-ce une bonne façon de passer d'une Activité en tant que paramètre à une non-activité de l'objet?
Je vais avoir des fuites de mémoire sur le périphérique réel(pas de l'émulateur), je me demande si cela pourrait aussi causer aucune raison pour que?
Grâce Idan.
OriginalL'auteur rayman | 2010-02-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer de passer le contexte de l'application qui est getcontexteapplication() sur l'activité.
Pourquoi avez-vous ce MyManager objet ? Vous pouvez seulement de soulever toast de l'activité sans l'avoir dans une catégorie distincte. Déplacez votre méthode raiseToast() de l'activité du corps et de l'viens de l'appeler.
EDIT: veuillez lire http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html
Comment dois-je envoyer la paramet de la vocation de l'Activité, et comment dois-je régler le paramètre dans le gestionnaire de classe? Merci.
getcontexteapplication() est dans le contexte de la méthode. Ainsi, vous pouvez remplacer le gestionnaire.raitetoast(MyActivity.c'); avec le gestionnaire.raitetoast(getcontexteapplication());
10x, mais comment exaclly cela pourrait réduire les fuites?
Si vous êtes à la fuite de vos objets, vous risquez de fuite de l'ensemble de l'activité. Veuillez lire cet article dans l'url que j'ai posté pour la réponse
OriginalL'auteur Alex Volovoy