In Android habe ich Singleton-Klasse, aber ich bin mir nicht sicher, ob der Müll Collector es freigeben kann.
Wenn Müll Collector meine Singleton-Klasse aufheben wird, wie kann es verhindern, dass die Zuordnung aufgehoben wird?
Garbage Collection sammelt Objekte, auf die nichts gezeigt wird, es sei denn, eine Referenz ist statisch. Sind statische Felder für die Garbage-Collection geöffnet?
Der einzige Grund, warum gc Ihre Instanz abhandelt, ist, wenn die gesamte App zerstört wird ...
Es gibt viele Möglichkeiten, ein Singleton zu implementieren. Eine der besten ist:
%Vor%Ob etwas ein Singleton ist oder nicht, hat keinen Einfluss darauf, ob es GCed ist oder nicht. Ein Objekt wird ignoriert, wenn es keine starken Referenzen darauf gibt. Schaut es euch an ( Ссылка ).
Es gibt noch ein weiteres Problem, das von Interesse ist. In Android steuert Ihre Anwendung den Lebenszyklus nicht. Es ist möglich, dass ein Prozess beendet und neu erstellt wird, wie Sie es nicht erwarten. Wenn dies geschieht, werden statische finale Variablen neu initialisiert. Hier ist mehr dazu:
Tags und Links android garbage-collection singleton dealloc