Question

Dans mon application Ive a obtenu un objet non-activité son rôle est d'être une classe de gestionnaire. plusieurs fois j'ai besoin de passer « activité de la source » à des méthodes comme paramètre à cette classe de gestionnaire afin de faire des opérations sur cette activité.

par exemple supposons que nous avons MyActivity qui dois faire des toasts. donc je cette classe gestionnaire appelé MyManager, et j'ai cette méthode dans ce

raiseToast(Activity sourceActivity) {

  Toast.makeText(sourceActivity, demo, Toast.LENGTH_LONG).show();
}

et de la classe MyActivity nous appelle cette méthode de cette façon:

MyManager manager=new MyManager();
manager.raiseToast(MyActivity.this);

il fonctionne très bien.

ce que je demande ici, est-ce une bonne façon de passer une activité en tant que paramètre à un objet non-activité? Je vais avoir une fuite de mémoire sur l'appareil réel (et non l'émulateur), je me demande si cela pourrait aussi causer une raison à cela?

Merci Idan.

Était-ce utile?

La solution

Vous pouvez essayer de passer contexte d'application qui est getApplicationContext () sur l'activité. Pourquoi avez-vous cet objet MyManager? Vous pouvez juste augmenter l'activité des toasts sans l'avoir en classe séparée. Déplacez votre méthode raiseToast () pour le corps d'activité et simplement l'appeler.

EDIT: http: // développeurs android- .blogspot.com / 2009/01 / évitant mémoire-leaks.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top