在我公司的android项目(10k +用户)中,我们几乎在每个Activity的onDestory()
方法中都设置了variable = null。代码如下:
@Override
protected void onDestroy() {
LogUtil.i(TAG, "onDestroy");
//mImageView = null;
if(pagerAdapter != null){
pagerAdapter.clear();
pagerAdapter = null;
}
if(mediaList != null){
mediaList.clear();
mediaList = null;
}
viewPager = null;
clickedMsg = null;
instance = null;
msg = null;
//System.gc();
super.onDestroy();
}
有必要吗?感谢您回答我的问题〜
答案 0 :(得分:4)
在你的情况下没有必要。并注意:
在某些情况下,系统会简单地杀死活动 托管过程中没有调用此方法(或任何其他),所以 它不应该被用来做那些意图留下来的东西 过程消失后。
来自docs。
onDestroy()
?当有参考保存活动时收集垃圾。例如,一个静态变量,它在其参数或其方法中保存一个活动。此外,一些Singleton设计模式使用执行不佳的代码执行此操作,因此请小心并通过onDestroy().
答案 1 :(得分:0)
没有必要,当活动破坏时,GC会自动回收。只有在使用BitMap或IOStream等特殊资源时,才需要特殊的回收过程。