现象:
在Fragment中要用Activity通信时,会在Fragment中去调用函数getActivity。但是有时这个函数会返回null。
原因:
通过查询Android官方文档的介绍:
If you need a Context
object within your Fragment
, you can call getActivity()
. However, be careful to call getActivity()
only when the fragment is attached to an activity. When the fragment is not yet attached, or was detached during the end of its lifecycle, getActivity()
will return null
大体的意思是只有当Fragment被添加到Activity中是,getActivity才会返回附加上的Activity,否则会返回null。
解决方案:
通过官方的解释,可以放心的去使用getActivity函数,但是必须在每次getActivity返回之前做一次null判断。