我的代码:
class HttpRequestTask(private val debtWsUrl : URI, debtorText : TextView) :
AsyncTask<Void, Void, Iterable<Debtor>?>() {
val debtorText: TextView = debtorText
}
为什么使用TextView的行显示警告:
此字段泄漏上下文对象
我该怎样防止这种情况?
答案 0 :(得分:14)
val textRef: WeakReference<TextView> = WeakReference(debtorText)
答案 1 :(得分:13)
您将视图分配给HttpRequestTask。由于视图需要上下文,因此您正在泄露它。
想想如果View被破坏但Http任务尚未完成会发生什么。
这就是为什么你应该避免在方法中分配Context相关的东西,这些东西可能会在视图被杀死时返回一些东西。
删除debtorText并返回值以在视图中设置它。