在Android Kotlin中创建类扩展AsyncTask而不泄漏上下文对象

我定义了一个基类扩展了AsyncTask并且有一些自定义的方法。 我想创建一些extend它的子类,并override一些方法。 但是通过这种方式,它的字段会泄漏Context对象。

 abstract class ParentTask(context: Context) : AsyncTask<Void, Int, String>() { ... override fun doInBackground(vararg params: Void): String? { ... } ... } 

请告诉我为什么,并告诉我如何在Android Kotlin中实现它? 如果有这样的例子,我非常感激。 p / s:我正在为此搜索,但无法理解。 为什么使用Singleton或其他设计模式

One Solution collect form web for “在Android Kotlin中创建类扩展AsyncTask而不泄漏上下文对象”

你不能避免这种警告,但你可以处理你的上下文是应用程序上下文,它不会泄漏:

  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? { //... } } 
  • Kotlin有没有关于访问修饰符的文档?
  • 可变的地图在Kotlin
  • 如何将java.util.stream.Stream <Something>转换成kotlin.Sequence <Something>
  • 使用C ++支持时,Android Studio调试器不起作用
  • 定时器崩溃KotlinNullPointerException内部片段
  • kotlin int盒装身份
  • 我可以混合Ktor与暴露?
  • 在Kotlin中使用HTTP客户端时如何正确处理错误?
  • 创建一个KClass的新实例
  • RxJava和FasterXML有一个有效的proguard规则吗?
  • Kotlin Decompiler生成错误的代码 - 是否有可能防止?
  • Kotlin language will be the best programming language for Android.