Frage

In meiner app ive bekam eine nicht-Aktivität Objekt, das es die Rolle der Manager-Klasse zu sein. viele Male ich muss passieren „Quelle Aktivität“ auf Methoden als Parameter zu dieser Manager-Klasse, um einige Operationen auf diese Tätigkeit zu machen.

zum Beispiel nehmen wir an, wir MyActivity haben, die etwas Toast tun Gotta. so habe ich diese Manager-Klasse genannt MyManager, und ich habe diese Methode darin

raiseToast(Activity sourceActivity) {

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

und von MyActivity Klasse wir diese Methode auf diese Weise aufrufen:

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

es funktioniert gut.

, was ich hier zu fragen, ist dies eine richtige Art und Weise eine Aktivität als Parameter auf ein Nicht-Aktivität Objekt zu übergeben? Ich bin ein Speicherleck auf reales Gerät (nicht der Emulator), die ich frage mich, ob dies auch einen Grund dafür verursachen könnte?

Danke Idan.

War es hilfreich?

Lösung

Sie können versuchen Anwendungskontext zu übergeben, die ist getApplicationContext () auf Aktivität. Warum haben Sie dieses MyManager Objekt? Sie können nur Toast von Aktivität erhöhen, ohne sie in separate Klasse mit. Bewegen Sie die Methode raiseToast (), um Aktivität Körper und rufen Sie einfach an.

EDIT: finden Sie unter http: // Android-Entwickler .blogspot.com / 2009/01 / Vermeidung von Gedächtnis leaks.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top