这个字段泄漏一个上下文对象
我的代码:
class HttpRequestTask(private val debtWsUrl : URI, debtorText : TextView) : AsyncTask<Void, Void, Iterable<Debtor>?>() { val debtorText: TextView = debtorText }
为什么使用TextView显示警告:
这个字段泄漏一个上下文对象
?
我怎样才能防止这个?
您将一个视图分配给您的HttpRequestTask。 由于视图需要一个上下文,你正在泄漏它。
试想一下,如果View已经被销毁,但是Http Task还没有完成,会发生什么。
这就是为什么你应该避免分配上下文相关的东西,可能会返回一些视图已经被杀死的方法。
删除debtorText并返回值以将其设置在您的视图中。
使用WeakReference 。
val textRef: WeakReference<TextView?> = WeakReference<>(debtorText)