Kodein和活动上下文讨论

问题描述 投票:0回答:1

我已经研究了本示例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)
  }
}

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

但是我也看到我们通过Kodein函数得到retainedKodein。因此,该Kodein模块具有抗旋转破坏活性的功能。但是我不了解活动的上下文,因为单例包含上下文。

所以我问。 Kodein是否重新加入活动背景?您能告诉我重新连接机制吗?因为现在我不清楚。谢谢你们!:))

android android-context kodein
1个回答
0
投票

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

有leackcanary结果:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.