“ 不能在生命周期方法里调用setContentView(null),这样很容易报异常的,解决方法是写一个空的layout文件,然后绑定。经过修改之后的ondestry方法如下:
@Overrideprotected void onDestroy() { super.onDestroy(); this.setContentView(R.layout.empty_view); fruitList = null ; layout_bottom= null ; }
”
新增:最近在研究framework层的源码,发现这文章问题很大,首先,每一个View都是由activity统一管理的,也就是说当activity被销毁的时候(不确定什么时候会调用ondestroy方法)他控制的view也会被销毁,除非activity因为某些引用而没有被销毁那么也会导致他管理的view不会被销毁,所以在写代码的时候只需要注意activity的引用安全就行了,具体的如何注意编写细节大家可以参考trinea大神的博客里面有清晰的讲解,这文章当时写的时候太菜了,大家千万不要入坑,置Null的方法其实有点多此一举了,只能在某些业务场景上用到,比如有一个自定义控件占用空间比较大效率比较低,但是app运行过程中占用过大的资源使用空间,那就可以考虑用这个方法做个即时释放(这种业务场景也比较少,你可以在onpase的时候释放然后再一次onresume的时候再加载。),所以综上如果你检测到activity没有被release 请从线程和服务上找原因。