-1

在沒有主機活動且沒有事務的情況下碎片被銷燬的情況是否存在?有沒有任何情況下片段被銷燬而沒有活動和沒有交易?

你的意思是說,從來沒有一個事務涉及隱藏該片段?

+0

「無交易」是否意味着_never_與隱藏該片段有關的事務,或者更確切地說,是否沒有明確的事務要求銷燬片段? –

+1

另外,「沒有活動」是什麼意思? – CommonsWare

+0

@CommonsWare不會破壞主機活動 –

回答

0

如果您Fragment是在「前臺」(即它目前加入到活動),它只能在兩種情況下銷燬。首先,Activity可能會被銷燬(配置更改或系統回收資源)。其次,您可能執行一些FragmentTransaction來銷燬它(例如撥打replace())。

如果您Fragment是在「背景」(例如,您以前執行的使用addToBackStack()交易),它可以不Activity也被破壞(如果系統要回收資源)被破壞。但我相信這不符合你的「無交易」的定義。我只是想引起注意,Fragment可能會在事務執行後(而不是立即執行後)被銷燬一段時間

tl; dr:不,一個Fragment不能被銷燬,除非它的主機Activity被銷燬,或者您在過去的某個時間點執行了一項交易以將其刪除。

相關問題