Ich möchte eine Singleton-Klasse erstellen, die von allen Punkten in meiner Anwendung aufgerufen werden kann. Das Problem ist, dass diese Klasse einen Kontext für ihre Operationen benötigt.Singleton mit Kontext in Android
Ich möchte nicht das Singleton in jeder Aktivität neu erstellen, weil auf diese Weise verliert alles Sinn, also habe ich darüber nachgedacht, es in meiner MainActivity mit einer Init-Methode zu erstellen, wo ich den Kontext als Argument übergeben. Von diesem Punkt an wäre mein Singleton brauchbar, aber ich denke, das ist ein schlechtes Design, weil meine MainActivity-Referenz immer so gehalten wird, und so könnte es zu Speicherlecks kommen.
Bin ich hier richtig?
Wenn mein Singleton-Objekt statisch ist und ich einen Verweis auf den Kontext halte, wird dieser Kontext niemals als Garbage-Collection behandelt. Wenn ich mich nicht irre, könnte dies zu einem Speicherverlust führen. Wenn dies nicht der Fall ist, erweitern Sie bitte ein wenig auf Ihre Antwort. – MichelReap
Speicherlecks * Plural *? Wenn es ein Singleton ist, dann gibt es einen einzigen Verweis auf seine Instanzvariablen. Wie ist das ein Leck, und selbst wenn es so wäre, wie würde es eigentlich * eine Rolle spielen? –
Nun, alle in der Aktivität, in der ich meinen Singleton starte, aufbewahrten Assets werden während der Ausführung der App gehalten. Wenn ich zum Beispiel dort ein großes Bild habe, könnte es leicht mein Gedächtnis füllen und ich könnte bald davon ausgehen. – MichelReap