我们知道非静态内部类会持有外部类的引用,此时这里的Handler持有着外部Activity的引用,当我们在Activity的内部类中进行异步耗时操作时,我们的Activity如果此时被finish掉了,而异步任务没有执行结束,这就会导致我们的Activity对象不能及时的被GC回收,从而导致内存问题。
这样的问题解决起来也很简单
- 不要在匿名内部类中进行异步操作
-
使用静态匿名内部类
内存问题大多数都是因为对对象生命周期的不巧当处理造成的,在使用某个对象时,我们需要仔细研究对象的生命周期,当处理一些占用内存较大并且生命周期较长的对象时,应用使用软引用对其就行处理,及时关闭不使用的资源。
以上就是本文的全部内容,希望对大家的学习有所帮助。
注:相关教程知识阅读请移步到Android开发频道。










