当我检查lifecycle
的fragment
时,我发现了一些我不理解的东西。
片段可能由任何
object
托管;比如Activity
。为了托管片段,实现FragmentHostCallback
,覆盖适用于主机的方法。
FragmentHostCallback
创建Fragment
的地方?我认为FragmentHostCallback
是在onInflate
或onAttach
创建的。但是,我找不到任何与在那里创建FragmentHostCallback
相关的代码。
片段本身不存在片段 - 如上所述,它是一个Activity或等效对象,它创建一个FragmentHostCallback
对象。例如,FragmentActivity
包含自己的FragmentHostCallback
实现,称为HostCallbacks。
你永远不会直接与这个对象交互,而是将FragmentHostCallback
传递给FragmentController.createController()
,这就是FragmentActivity
,在这种情况下,用来触发生命周期的变化以及从Activity到你实际交互的FragmentManager
的其他信号。