繁体   English   中英

Kodein 和活动上下文讨论

[英]Kodein and activity context discuss

我研究了这个示例repo,以了解如何在 Android 应用程序中实现 Kodein。 但是我对示例中活动案例中的上下文问题感到困惑。

这里的代码:

  abstract class BaseActivity<B : ViewDataBinding, VM : ViewModel>: AppCompatActivity(), KodeinAware {

  protected lateinit var binding: B
  lateinit var viewModel: VM
  private val _parentKodein by closestKodein()

  override val kodein: Kodein by retainedKodein {
    extend(_parentKodein, copy = Copy.All)
    bind<Activity>() with singleton { this@BaseActivity }
    bind<Context>("ActivityContext") with singleton { this@BaseActivity }
    import(activityModule)
  }
}

在这里我们看到我们将活动的上下文添加到单例中。

但我也看到我们通过retainedKodein函数获得了Kodein 所以这个 Kodein 模块对旋转时的活动破坏免疫。 但我不了解活动的上下文,因为单例拥有上下文。

所以我问。 Kodein 是否重新附加了活动的上下文? 你能向我描述一下重新连接机制吗? 因为这对我来说现在还不清楚。 谢谢你们!:))

答案是没有办法! Kodein 无法将活动上下文重新连接到他的实例。 我使用了 leackcanary util 并在示例repo 中发现了活动泄漏,还创建了isuue

有 leackcanary 结果: 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM