【发布时间】:2021-08-29 02:12:56
【问题描述】:
我听说 AsyncTask 并不是很有用,因为在 AsyncTask 完成其功能之前,如果手机的方向发生变化,作为 AsyncTask 的父级的 Activity 不能被销毁以释放内存(如它是一个内部类,它包含父类的引用)。那么,如果我们不将 AsyncTask 声明为内部类,而是将其定义为一个独立的类,那会怎样......那么这个内存泄漏问题会得到解决吗?
【问题讨论】:
-
"那么这个内存泄漏问题会得到解决吗?" - 可能不是。使用
AsyncTask有一些方法可以避免内存泄漏,但它们往往很复杂,例如使用保留片段来管理AsyncTask。相反,有很多方法可以搞砸。这就是 Google 去年正式弃用AsyncTask的原因,这是一个强烈的信号,表明您应该考虑替代方案:RxJava、Kotlin 协程、LiveData等。
标签: android multithreading android-asynctask