Kodein 和 activity 上下文讨论
Kodein and activity context discuss
我研究了这个例子 repo 以了解如何在 Android 应用程序中实施 Kodein。
但是我对示例中 activity 案例中的上下文问题感到困惑。
这里是代码:
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)
}
}
这里看到我们给单例添加了activity的上下文。
但我也看到我们通过 retainedKodein
函数得到 Kodein
。
所以这个 Kodein 模块可以免疫 activity 旋转破坏。
但是我不了解activity的上下文,因为单例持有上下文。
所以我问。 Kodein 是否重新附加 activity 的上下文?你能向我描述一下重新连接机制吗?因为我现在还不清楚。谢谢你们!:))
我研究了这个例子 repo 以了解如何在 Android 应用程序中实施 Kodein。 但是我对示例中 activity 案例中的上下文问题感到困惑。
这里是代码:
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)
}
}
这里看到我们给单例添加了activity的上下文。
但我也看到我们通过 retainedKodein
函数得到 Kodein
。
所以这个 Kodein 模块可以免疫 activity 旋转破坏。
但是我不了解activity的上下文,因为单例持有上下文。
所以我问。 Kodein 是否重新附加 activity 的上下文?你能向我描述一下重新连接机制吗?因为我现在还不清楚。谢谢你们!:))