Android 在片段中保留活动上下文引用的缺点

Android 在片段中保留活动上下文引用的缺点,android,android-activity,android-context,Android,Android Activity,Android Context,在我的片段中,我这样做是为了获得对上下文的引用: @Override public void onAttach(Activity activity) { super.onAttach(activity); this.context = activity; } 这可能是个问题吗?这是内存泄漏的窗口吗? 如果是这样,那么更好的方法是什么? (使用getActivity()有时可能返回null,并可能产生问题)这不是问题,但请确保在中将其设置为null 但为什么要在全球范围内保持参照

在我的片段中,我这样做是为了获得对上下文的引用:

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    this.context = activity;
}
这可能是个问题吗?这是内存泄漏的窗口吗? 如果是这样,那么更好的方法是什么?

(使用
getActivity()
有时可能返回null,并可能产生问题)

这不是问题,但请确保在中将其设置为null


但为什么要在全球范围内保持参照?您可以在任何需要上下文的地方调用getActivity(),只要不使上下文变量为静态,它就不应该泄漏。当片段被分离时,它将超出范围并由gc收集。但我会将其设置为null以确定。该片段已经保留了对创建它的活动的引用,可以使用getActivity()检索该引用。
@Override
public void onDestroyView()
{
    super.onDestroyView();
    context = null;
}