use*_*678 3 android android-asynctask android-activity
从长远来看,AsyncTask会产生内存泄漏:如果AsyncTask持续很长时间,它会使活动保持"活着",而Android则希望摆脱它,因为它无法再显示.该活动不能被垃圾收集,这是Android在设备上保留资源的核心机制.
这是否意味着如果我们调用finish()方法并且asynctask正在运行,那么活动将保持"活着"?如果不是,那么这意味着什么
如果AsyncTask持续很长时间,它会使活动"活着"吗?
除非我们调用finish()方法或按回按钮,否则活动将处于活动状态.这是否意味着如果asyntask正在运行,那么即使在那之后活动也将存活?
Dou*_*son 11
如果AsyncTask被声明为活动内部的非静态内部类,则意味着它始终拥有对创建它的封闭外部类的强引用.因此,只要AsyncTask正在运行,它就会保留对活动的强引用,这意味着即使在调用finish()并执行onDestroy()之后它也不会被垃圾收集.这是AsyncTask的一个非常常见的问题,没有正确实现以防止这种情况.
| 归档时间: |
|
| 查看次数: |
379 次 |
| 最近记录: |