Activité passage à l'objet non-activité correctement
-
20-09-2019 - |
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.
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