Activitys,Threads,&Memory Leaks
来源:互联网 发布:网络大电影导演片酬 编辑:程序博客网 时间:2024/05/16 11:54
原文来自http://www.androiddesignpatterns.com/2013/04/activitys-threads-memory-leaks.html
非静态匿名内部类隐式保存外部类的引用
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); exampleOne(); } private void exampleOne() { new Thread() { @Override public void run() { while (true) { SystemClock.sleep(1000); } } }.start(); }}
上面的代码可能产生内存泄漏,因为线程是非静态的匿名内部类,当Activity的配置发生改变,需要销毁然后新建时,线程保存了旧的Activity的引用,导致旧的Acitvity不能很好的被回收,从而产生了内存泄漏。但是静态内部类不保存外部类的引用,所以可以使用静态内部类替代匿名内部类。
In Android, Handler classes should be static or leaks might occur.
Avoid using non-static inner classes in an activity if instances of the inner class could outlive the activity’s lifecycle.
注意:
AysncTask只能用于短时间的操作——最多几秒钟。
AsyncTasks should only be used for short-lived operations如果内部类(最好使用静态类)需要保存对外部类的引用,使用WeakReference
http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.htmlHandling Configuration Changes with Fragments
当Activity的配置发生改变时,可以使用Fragment保存状态。
配置的改变包含屏幕方向、设备默认的语言和设备默认的字体。
http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html
- Activitys, Threads, & Memory Leaks
- Activitys,Threads,&Memory Leaks
- Avtivitys, Threads & Memory Leaks
- Activitys, Threads和 内存泄露
- 【译】Activitys, Threads和 内存泄露
- Android中的Activitys, Threads和内存泄露
- Android中的Activitys, Threads和内存泄露
- JavaScript and memory leaks
- Hunting Java Memory Leaks
- Avoiding memory leaks
- Avoiding memory leaks
- Avoiding memory leaks
- Avoiding Memory Leaks
- VC STLport memory leaks
- Memory leaks using CVSListBox
- iphone memory leaks检测
- Avoiding memory leaks
- IE Memory Leaks
- java 访问 http 返回 json 数据
- 数据库第三次作业参考答案
- ssh登陆提示信息
- Java获取两个日期相差的月数
- LIS(nlgn) DP
- Activitys,Threads,&Memory Leaks
- hnustoj 并查集——宗教信仰
- CBService-CBMutableService学习笔记
- 《实体解析与信息质量》-2.1.1信息质量
- Python网络编程基础笔记-poll实现非阻塞socket
- vim 设置编码格式
- python select模块.select实现非阻塞socket,Popen等(特别在 Unix 下,它还可以用于管道)
- powerDesigner设置 name不自动等于code
- 第六届蓝桥杯C/C++A组 第九题 垒骰子