支持库中的getContext()
和getActivity()
与Fragment
有什么区别?
他们是否总是返回相同的对象? (与当前片段相关的 Activity )
最佳答案
在大多数情况下,没有区别,但是...
因此,最初Fragments
托管在FragmentsActivity
中,然后又获得了一个称为Context
的getActivity()
。
刚刚检查了源代码和Fragments
,现在可以由实现FragmentHostCallback接口(interface)的任何人托管。我认为这在支持库版本23中发生了变化。
使用支持库的较新版本时,如果Fragment
未托管Activity
,则在调用getActivity()
和getContext()
时可以获得不同的对象。
当您调用getActivity()
时,您也会得到一个Activity
,它也是Context
。
但是,当您调用getContext
时,您将得到一个Context
,它可能不是Activity
。