支持库中的getContext()getActivity()Fragment有什么区别?

他们是否总是返回相同的对象? (与当前片段相关的 Activity )

最佳答案

在大多数情况下,没有区别,但是...

因此,最初Fragments托管在FragmentsActivity中,然后又获得了一个称为ContextgetActivity()

刚刚检查了源代码和Fragments,现在可以由实现FragmentHostCallback接口(interface)的任何人托管。我认为这在支持库版本23中发生了变化。

使用支持库的较新版本时,如果Fragment未托管Activity,则在调用getActivity()getContext()时可以获得不同的对象。

当您调用getActivity()时,您也会得到一个Activity,它也是Context
但是,当您调用getContext时,您将得到一个Context,它可能不是Activity

10-07 19:22
查看更多