0

我尝试使用 Kodein DI 库并习惯于像这样绑定我的 Repo、NetworkService 和 viewModel

bind<MovieNetworkService>() with singleton {
    instance<Retrofit>().create(MovieNetworkService::class.java)
}

bind<MovieRepo>() with provider {
    MovieRepo(instance())
}
bind<MovieViewModel>() with provider {
    MovieViewModel(instance() , instance<Application>())
}

活动 :

class MainActivity : BaseActivity(), KodeinAware {

override val kodein: Kodein by Kodein.lazy {
    import(androidCoreModule(application))
    import(movieDIModule)
}

private val viewModel: MovieViewModel by kodein.instance()

我能够使用 viewmodel 并且一切正常,但我注意到在设备旋转时我的 viewmodel 状态没有被保存,或者我的 Activity 正在创建一个新的 ViewModel。我用 ViewModelProviders 方法尝试了这个,并且有效,但是使用 Kodein DI,我的视图模型在设备旋转时再次实例化。

我在这里做错了什么?

4

0 回答 0