相关疑难解决方法(0)

Activity的onDestroy/Fragment的onDestroyView设置了Null实践

我正在阅读ListFragment源代码,我看到了这个实现:

ListAdapter mAdapter;
ListView mList;
View mEmptyView;
TextView mStandardEmptyView;
View mProgressContainer;
View mListContainer;
CharSequence mEmptyText;
boolean mListShown;

/**
 * Detach from list view.
 */
@Override
public void onDestroyView() {
    mHandler.removeCallbacks(mRequestFocus);
    mList = null;
    mListShown = false;
    mEmptyView = mProgressContainer = mListContainer = null;
    mStandardEmptyView = null;
    super.onDestroyView();
}
Run Code Online (Sandbox Code Playgroud)

在此函数中,Google开发人员将Null设置为在ListFragment中声明的所有视图字段,并删除回调"mRequestFocus".

ListActivity源代码中.Google开发人员实施如下:

protected ListAdapter mAdapter;
protected ListView mList;

private Handler mHandler = new Handler();


@Override
protected void onDestroy() {
    mHandler.removeCallbacks(mRequestFocus);
    super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

我没有看到Google开发人员在ListActivity的onDestroy上将Null设置为mList,就像他们为ListFragment类所做的那样.

我的问题是

  1. 为什么谷歌开发者没有在ListActivity的onDestroy中将Null设置为mList?有什么原因?

  2. 我们是否需要将Null设置为Activity的onDestroy和Fragment的onDestroyView中的所有View字段?

3.在这两个函数中设置Null的任何做法:Activity的onDestroy和Fragment的onDestroyView?

谢谢你的想法!

android ondestroy android-fragments android-activity

34
推荐指数
1
解决办法
2万
查看次数