我定义了一个基类扩展AsyncTask
并有一些自定义方法。我想创建一些子类来扩展
它,并覆盖
一些方法。但这样一来,它的字段就会泄漏 Context
对象。
abstract class ParentTask(context: Context) : AsyncTask<Void, Int, String>()
{
...
override fun doInBackground(vararg params: Void): String? {
...
}
...
}
请告诉我原因并告诉我如何在 Android Kotlin 中实现它?如果有一个关于此的例子,我将非常感激。 p/s:我正在搜索这个但无法理解。为什么使用 Singleton 或其他设计模式
最佳答案
您无法通过这种方式避免此警告,但您可以处理您的上下文是应用程序上下文并且不会泄漏:
abstract class ParentTask(context: Context) : AsyncTask<Void, Int, String>() {
private val context: Context
init {
this.context = context.applicationContext
}
override fun doInBackground(vararg voids: Void): String? {
//...
}
}
关于android - 在 Android Kotlin 中创建类扩展 AsyncTask 而不泄漏上下文对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46030345/