Android 是否需要在活动的onDestory()方法中设置variable=null?
在我公司的android项目10k+用户中,我们在几乎所有活动的onDestory方法中都设置了variable=null。代码如下所示:Android 是否需要在活动的onDestory()方法中设置variable=null?,android,Android,在我公司的android项目10k+用户中,我们在几乎所有活动的onDestory方法中都设置了variable=null。代码如下所示: @Override protected void onDestroy() { LogUtil.i(TAG, "onDestroy"); //mImageView = null; if(pagerAdapter != null){ pagerAdapter.clear(); pagerAdapter =
@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();
}
有必要吗?感谢您回答我的问题~这不是必需的,当活动被破坏时,它将被GC自动回收。只有在使用位图或IOStream等特殊资源时,才需要特殊的回收过程。在您的情况下,这是不必要的。并注意到: 在某些情况下,系统会简单地终止活动的 托管进程而不调用此方法或其中的任何其他方法,因此 它不应该被用来做打算留在身边的事情 过程结束后 从 那么我应该什么时候在onDestroy中取消?
当存在保持活动不被垃圾收集的引用时。例如,一个静态变量在其参数中或通过其方法保存活动。另外,一些单例设计模式使用实现较差的代码来实现这一点,因此请注意这一点,并通过onDestroy发布它。我不会这样做。似乎没有必要。我唯一能想到的是,有人担心另一个函数也会清除列表。我不知道为什么这是个大问题。