博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Activity调用Ondestroy()方法之后内存管理器为什么没有释放占用资源
阅读量:5913 次
发布时间:2019-06-19

本文共 727 字,大约阅读时间需要 2 分钟。

hot3.png

   “ 不能在生命周期方法里调用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 请从线程和服务上找原因。

 

 

转载于:https://my.oschina.net/halfront/blog/407419

你可能感兴趣的文章
【Android-视频播放】实用vitamio自定义控制条位置
查看>>
返回函数多个返回值
查看>>
启用PowerShell Web Access
查看>>
django文件上传下载
查看>>
Maven 运行启动时****找不到符号*com.xxx.user.java
查看>>
Android客户端性能测试常见指标及测试方法--转载
查看>>
批量ping 检测linux主机是否可以通
查看>>
【转】搭建高可用mongodb集群(一)——配置mongodb
查看>>
DEDE织梦自定表单提交后自动发送邮件并到站长邮箱
查看>>
widget(7、dialog)
查看>>
jvm08
查看>>
Class.forName("ClassName")与ClassName.class的区别
查看>>
java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
查看>>
Codeforces_GYM Flight Boarding Optimization
查看>>
DES算法,JAVA,遇到的问题
查看>>
error: Setup script exited with error: Unable to find vcvarsall.bat - 转
查看>>
使用Java程序读取JPG Tif等格式图片的exif信息
查看>>
自适应电脑、手机和iPad的网页设计方法
查看>>
android mvc
查看>>
CAKeyframeAnimation 关键帧动画
查看>>