0

我想在我的应用程序中同时使用 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()
}
4

1 回答 1

0

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

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

class SetupNavigationController: Controller(), KodeinAware {
    override val kodein: Kodein by kodein { applicationContext!! }
    val someInstance: SomeClass by kodein.instance()
}
于 2019-10-10T10:12:02.503 回答