Eine Variable von einer anderen Klasse holen..

  • 21 Antworten
  • Letztes Antwortdatum
@markus.tullius
Stimmt auch es gibt halt 2 Seiten: Entweder halten statische Variablen die ganze App lang und führen zu leaks falls zu viele resourcen dadurch erhalten bleiben: z.B. statische Referenz auf ein Context-Objekt zum beispiel dass die GC von unnötigen Resourcen wie ganzen aufgeblähten View-Hierarchien verhindert, weil sich die Activity neu starten oder in eine andere überwechselt.

Oder die werden schnell mal genullt, so dass wichtige Informationen verloren gehen können. Bei Apps mit OpenGL Kontext passiert das immer. Ich hatte mal einen Talk gesehen wo einige Entwickler über One-Activity-Apps gesprochen haben und statische Variablen dort zu Problemen führen in Bezug auf OpenGL-Contexts.

Aber das ist kein Todesurteil diese zu benutzten, nur muss man damit dann im Endeffekt richtig umgehen und sich auf solche Situationen einstellen. Das wiederum macht die Entwicklung etwas umfangreicher und Fehleranfällig, deßhalb so gut wie möglich vermeiden und den statischen variablen nciht allzu kritische Informationen händeln lassen.
 
Ja, man kann mit statischen Variablen gut leben. Aber man erkauft es sich den Vorteil mit einen riesigen Loch in der Programmstruktur.

So würde sich mir als erstes die Frage stellen, wie beende man eine Activity oder ein Fragment so, dass keine Referenzen auf statischen Variablen übrig bleiben (Was ist mit den anderen Zuständen im Lifecycle?)

Wenn das oben nicht klappen sollte, stellt sich eine zweite Frage, wie verhindere man, dass die nicht zerstörten Objekte (z.B Threads) keine Aktionen mehr ausführen (Code von der Webseite laden, falsche Daten in die Datenbank schreiben, usw.).

Ich würde mal davon ausgehen, dass die Lösung nicht ganz trivial ist. ;)
 
Zurück
Oben Unten