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.
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? –
Was bedeutet "ohne Aktivität"? – CommonsWare
@CommonsWare, ohne dass die Hostaktivität zerstört wird –