什么是之间的不同getContext(),并getActivity()从Fragment支持库?
他们总是返回同一个对象吗?(与当前片段相关的活动)
pel*_*lus 63
在大多数情况下,没有区别,但 ......
因此最初Fragments被托管在FragmentsActivity那里然后被Context召唤一个叫getActivity().
刚检查了源代码,Fragments现在可以由任何实现FragmentHostCallback接口的人托管.我认为,这在支持库版本23中发生了变化.
当使用支持库的新版本,当Fragment不被托管Activity在调用的时候可以得到不同的对象getActivity()和getContext().
当你打电话getActivity()你得到的Activity是一个Context为好.但是当你打电话的时候,getContext你会得到一个Context可能不是的Activity.
到目前为止,FragmentHostCallback(OS和支持库中)唯一提供的实现始终为两者getContext()和/ 返回相同的值getActivity().
但是,其他构造函数FragmentHostCallback建议在将来的实现中,我们可能得到:
Activity和非null Context,不是Activity.这看起来不太可能,但我们可以想象片段可以在将来的活动之外使用,或者完全沙盒化.Activity和非null Context,与实例不同Activity.例如,Context可能是一个ContextThemeWrapper.结论:何时可以使用getContext().当您需要特定于活动的呼叫时,请使用getActivity().
| 归档时间: |
|
| 查看次数: |
34834 次 |
| 最近记录: |