有没有任何情况下片段被销毁而没有活动和没有交易?
答
如果您Fragment
是在“前台”(即它目前加入到活动),它只能在两种情况下销毁。首先,Activity
可能会被销毁(配置更改或系统回收资源)。其次,您可能执行一些FragmentTransaction
来销毁它(例如拨打replace()
)。
如果您Fragment
是在“背景”(例如,您以前执行的使用addToBackStack()
交易),它可以不Activity
也被破坏(如果系统要回收资源)被破坏。但我相信这不符合你的“无交易”的定义。我只是想引起注意,Fragment
可能会在事务执行后(而不是立即执行后)被销毁一段时间。
tl; dr:不,一个Fragment
不能被销毁,除非它的主机Activity
被销毁,或者您在过去的某个时间点执行了一项交易以将其删除。
“无交易”是否意味着_never_与隐藏该片段有关的事务,或者更确切地说,是否没有明确的事务要求销毁片段? –
另外,“没有活动”是什么意思? – CommonsWare
@CommonsWare不会破坏主机活动 –