匿名内部类和static使用时要注意的(转)
来源:互联网 发布:超链接调用js 编辑:程序博客网 时间:2024/05/01 02:56
如果你不加以小心的话会导致内存泄漏。关于如何处理这个棘手的问题,下面有几个基本的技巧供参考
1、使用静态内部类/匿名类,不要使用非静态内部类/匿名类.非静态内部类/匿名类会隐式的持有外部类的引用,外部类就有可能发生泄漏。而静态内部类/匿名类不会隐式的持有外部类引用,外部类会以正常的方式回收,如果你想在静态内部类/匿名类中使用外部类的属性或方法时,可以显示的持有一个弱引用。
2、不要以为Java永远会帮你清理回收正在运行的threads.在上面的代码中,我们很容易误以为当Activity结束销毁时会帮我们把正在运行的thread也结束回收掉,但事情永远不是这样的!Java threads会一直存在,只有当线程运行完成或被杀死掉,线程才会被回收。所以我们应该养成为thread设置退出逻辑条件的习惯。
3、适当的考虑下是否应该使用线程.Android应用框架设计了许多的类来简化执行后台任务,我们可以使用与Activity生命周期相关联的Loaders来执行简短的后台查询任务。如果一个线程不依赖与Activity,我们还可以使用Service来执行后台任务,然后用BroadcastReceiver来向Activity报告结果。另外需要注意的是本文讨论的thread同样使用于AsyncTasks,AsyncTask同样也是由线程来实现,只不过使用了Java5.0新增并发包中的功能,但同时需要注意的是根据官方文档所说,AsyncTask适用于执行一些简短的后台任务
0 0
- 匿名内部类和static使用时要注意的(转)
- 使用匿名内部类要注意的原则
- java静态内部类和匿名内部类的使用
- java中的内部类和匿名内部类的使用
- 内部类和匿名内部类的使用
- 内部类、匿名内部类的使用
- 匿名内部类需要注意的事项
- 匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- 匿名内部类的使用
- Java的内部类和匿名内部类的使用规则
- JAVA中内部类和匿名内部类的区别,分别在什么时候使用它们?
- Java之final、static、匿名对象和内部类
- 内部类的编码及使用,包括成员内部类,局部内部类,匿名内部类
- 注意java8中已经没有匿名内部类和局部内部类只能访问final变量的限制了!
- 通过反射将实体类拼接成字符串
- Android系统Recovery工作原理之使用update.zip升级过程分析(五)---update.zip包从上层进入Recovery服务
- 浅谈Android中Context
- git 常用指令
- putty 虚拟机时报 "software caused connection abort" 解决方法
- 匿名内部类和static使用时要注意的(转)
- 一、大规模并发带来的挑战
- CSS3伪类和伪元素的特性和区别
- jmeter OutOfMemoryError 解决方案
- PDF怎么编辑?如何设置页面?
- LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
- Linux select 文件描述符1024限制
- mybatis绑定错误
- Libevent 使用多线程