2016-06-23 11 views
0

Ich habe über Müllsammler und seine Auswirkungen in der Android gelesen und ich habe ein paar Fragen, die ich gerne teilen würde.Android erstellen viele Objekte vs Müllabfuhr

  • Welche Auswirkungen hat der Müllsammler auf das Android? Es läuft in einem eigenen Thread, so dass die Anwendung kein Problem haben sollte, oder?
  • Wenn die Antwort auf Frage oben ja war, sollten wir Objekte erstellen oder vermeiden? Beispiel:

    findViewById (R.id.mytextview) .setText ("xpto");

oder

TextView mytextView = findViewById(R.id.mytextview) 
myTextView.setText("xpto"); 

Antwort

1

In Sie probieren Sie erzeugen keine Objekte (neuer Operator), erstellen Sie Verweis auf bestehendes Objekt in Sicht Hirarchie. Der Garbage Collector durchsucht das Objektdiagramm und löscht Objekte, auf die keine anderen Objekte verweisen. Es gibt wenige Arten von Referenzen. Die am praktischsten genutzte Android-Funktion ist WeakReference, mit der Speicherlecks vermieden werden können (siehe What is the difference between a soft reference and a weak reference in Java?). Sie sollten sich der Referenzierung bewusst sein, wenn Sie beispielsweise Timer verwenden und Aktivität zerstört wird, während der Timer (oder eine lange) Task noch läuft (schwache Referenz verwenden)

0

Wenn Sie Objekte in Java erstellen, ist es nicht schlecht . Sie sollten keine Objekte in Zeichnungszyklen erstellen, wie onDraw-Methoden von Views. Das hängt von FPS ab - es kann mit häufigen Aufrufen von Garbage Collector nicht stabil sein, so dass Benutzer Verzögerungen sehen. Es könnte jedoch auch Fragments \ Activities bei einer Richtungsänderung und so weiter erstellt werden.