【发布时间】:2014-12-09 18:48:43
【问题描述】:
我正在阅读 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();
}
在此函数中,Google 开发人员将所有在 ListFragment 中声明的视图字段设置为 Null,并删除回调“mRequestFocus”。
在 ListActivity 源代码中。谷歌开发者实现如下:
protected ListAdapter mAdapter;
protected ListView mList;
private Handler mHandler = new Handler();
@Override
protected void onDestroy() {
mHandler.removeCallbacks(mRequestFocus);
super.onDestroy();
}
我没有看到 Google 开发人员在 ListActivity 的 onDestroy 上将 Null 设置为 mList,就像他们为 ListFragment 类所做的那样。
我的问题是
为什么google开发者在ListActivity的onDestroy中没有将Null设置为mList?有什么原因吗?
是否需要将Activity的onDestroy和Fragment的onDestroyView中的所有View字段都设置为Null?
3. Activity的onDestroy和Fragment的onDestroyView这两个函数设置Null有什么做法吗?
感谢您的想法!
【问题讨论】:
标签: android android-activity android-fragments ondestroy