如何在Android中使用Kodein与Conductor?



我想在我的应用程序中同时使用 Conductor 和 Kodein。 问题是应用程序上下文和活动在控制器设置上都为空,我无法访问 Kodein 实例。

class SetupNavigationController: Controller(), KodeinAware {
override val kodein: Kodein by closestKodein(applicationContext!!)
//    val kodein = (activity as MainActivity).kodein
val someInstance: SomeClass by kodein.instance()
}

Kodein 默认是懒惰的,特别是因为 applicationContext 在类实例化时为 null,稍后由系统设置。

您需要使用惰性语法,以便仅在需要时访问applicationContext

class SetupNavigationController: Controller(), KodeinAware {
override val kodein: Kodein by kodein { applicationContext!! }
val someInstance: SomeClass by kodein.instance()
}

相关内容

  • 没有找到相关文章

最新更新