片段中的上下文为空时该怎么办

时间:2018-12-02 13:51:38

标签: android android-fragments exception-handling android-context

简单地从方法返回并在context为null时不执行任何操作是否安全(正确)?当前,当我需要片段的上下文时,我就会这样做。

Context context = getContext();
if(context == null) return;

我的问题太愚蠢和显而易见,但是我仍然不确定这是否正确。是否必要。 (也许我应该记录警告?)


在需要时从onCreateView的视图持有者和内部视图单击侦听器中的onViewCreated获取上下文时,我会在itemView"‪"中进行此检查。

2 个答案:

答案 0 :(得分:1)

我认为重新运行和不执行任何操作都与捕获异常并将其吞并一样糟糕。

Fragment具有方法requireContext()。当上下文为null时,它只会使应用程序崩溃。实际上,我从来没有见过我的应用程序因此而崩溃。因此,我想片段中的空上下文是一种非常罕见且极端的情况。

onViewCreated中,您还可以从创建的视图中获取上下文。它不是null,因为视图创建需要上下文。

如果需要一些资源,也可以使用getResources().getString()代替getContext().getString()

答案 1 :(得分:1)

由于代码位于片段中,因此必须使用:

getActivity()

获取宿主活动的上下文。
为什么会得到null上下文?
onAttach()之后,您可以使用getContext()