2016-06-26 8 views
-1

Ich erstelle dynamisch viele Ansichten innerhalb meiner Anwendung. Jeder benötigt einen Kontext.Überall den gleichen Kontext verwenden?

Sollte ich nur eine Instanz des Kontextes verwenden und sie dann an alle weitergeben oder sollte ich andere Instanzen verwenden.

Mit anderen Worten, die besser ist, diese -

Context context = this; 

for (int i = 0; i < 10; i++) { 
    SomeView view = new SomeView(context); 
} 

oder diese -

for (int i = 0; i < 80; i++) { 
    SomeView view = new SomeView(this); 
} 

Hinweis: Ansichten auf dem Bildschirm für eine lange Zeit bleiben wird.

+0

Lieber Zuschauer, es tut mir leid, wenn ich eine noobish Frage gepostet habe. Bitte erläutern Sie den Grund für den Downvote. –

Antwort

0

Wenn Sie in der gleichen Klasse arbeiten, können Sie verwenden, um direkt „this“,
Falls Sie den Kontext der anderen Klasse müssen in der aktuellen Klasse Verwendung Context c = X.class;
Hoffe, es hilft.

0

Bitte beachten Sie, dass zwischen Ihren beiden Varianten kein echter Unterschied besteht. Im zweiten Beispiel erstellen Sie keine weitere Instanz von this! Alles, was Java im Hintergrund tut, ist, einen Zeiger als Referenz auf this an Ihren Konstruktor zu übergeben. Im ersten Beispiel übergeben Sie einen Verweis auf this an context übergeben die gleiche Referenz auf Ihren Konstruktor.

Dies bedeutet, dass, wenn Sie etwas in Ihrem Kontext in einer Ansicht ändern, der Kontext auch in jeder anderen Ansicht geändert wird. Denken Sie daran, dass die Sicherheit der Fäden nicht von Anfang an gegeben ist, seien Sie vorsichtig.

Sie könnten eine Nachlese über die innere Funktionsweise von Java: wikipedia ist ein guter Anfang.

Verwandte Themen