是否有必要在Activity的onDestory()方法中设置variable = null?

时间:2016-08-30 03:20:17

标签: android

在我公司的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();
}

有必要吗?感谢您回答我的问题〜

2 个答案:

答案 0 :(得分:4)

在你的情况下没有必要。并注意:

  

在某些情况下,系统会简单地杀死活动   托管过程中没有调用此方法(或任何其他),所以   它不应该被用来做那些意图留下来的东西   过程消失后。

来自docs

那我什么时候应该在onDestroy()

中取消

当有参考保存活动时收集垃圾。例如,一个静态变量,它在其参数或其方法中保存一个活动。此外,一些Singleton设计模式使用执行不佳的代码执行此操作,因此请小心并通过onDestroy().

释放它

答案 1 :(得分:0)

没有必要,当活动破坏时,GC会自动回收。只有在使用BitMap或IOStream等特殊资源时,才需要特殊的回收过程。