-1

Gibt es ein Szenario, in dem ein Fragment ohne die Host-Aktivität und ohne Transaktion zerstört wird?Gibt es ein Szenario, in dem ein Fragment ohne Aktivität und ohne Transaktion zerstört wird?

meinst du, dass es nie eine Transaktion im Zusammenhang mit dem Verbergen dieses Fragments gab?

ja

+0

Mit "ohne Transaktion" meinen Sie, dass es _never_ eine Transaktion im Zusammenhang mit dem Verbergen dieses Fragments gab, oder eher meinen Sie, dass es keine explizite Transaktion gab, die das Fragment zerstören wollte? –

+1

Was bedeutet "ohne Aktivität"? – CommonsWare

+0

@CommonsWare, ohne dass die Hostaktivität zerstört wird –

Antwort

0

Wenn Ihre Fragment im „Vordergrund“ ist (das heißt es zur Zeit zu einer Aktivität hinzugefügt wird), kann es nur in zwei Szenarien zerstört werden. Erstens kann die Activity zerstört werden (eine Konfigurationsänderung oder das System, das Ressourcen zurückfordert). Zweitens könnten Sie etwas FragmentTransaction ausführen, um es zu zerstören (z. B. ein replace() Anruf).

Wenn Ihre Fragment im „Hintergrund“ ist (zum Beispiel vorher Sie ausgeführt, um eine Transaktion mit addToBackStack()) kann es ohne die Activity zerstört wird auch zerstört werden (wenn das System will Mittel zurückfordern). Aber ich glaube, das entspricht nicht Ihrer Definition von "ohne Transaktion". Ich möchte nur darauf aufmerksam machen, dass die Fragment möglicherweise einige Zeit zerstört nach die Transaktion ausgeführt wird (im Gegensatz zu sofort nach der Ausführung).

tl; dr: Nein, eine Fragment kann nicht zerstört werden, es sei denn, ihr Host Activity ist zerstört oder Sie haben eine Transaktion ausgeführt, um sie irgendwann in der Vergangenheit zu entfernen.

Verwandte Themen