这个字段泄漏一个上下文对象
我的代码:
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)
- Android数据绑定的Kotlin问题
- Kotlin – 在Android中转换Singleton DatabaseController的最佳方法
- Android工作室不解决在IDE中使用Kotlin(.kt)编写的类,但编译正常
- 如何在AndroidStudio中使用Dagger2和Kotlin在其他项目模块中实现接口库
- NoSuchMethodError使用Kotlin与新的Android数据绑定
- 带有ArrayList数据类型的哈希表(Kotlin)?
- 用Kotlin编写的Android库提供对Java应用程序的支持
- Kotlin:无法在类定义中声明mutableListOf类型的参数
- 未解决的参考:使用greendao和kotlin的DaoSession