这个字段泄漏一个上下文对象

我的代码:

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)