Android 旋转屏幕时保留具有片段范围的ViewModels
我们正在使用support libsAndroid 旋转屏幕时保留具有片段范围的ViewModels,android,kotlin,android-architecture-components,Android,Kotlin,Android Architecture Components,我们正在使用support libsv25.+和新的体系结构组件v1.0.0-alpha3,我们认识到片段范围的视图模型没有正确保留: class MyFragment : LifecycleFragment() { protected lateinit var viewModel: MyViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInst
v25.+
和新的体系结构组件v1.0.0-alpha3
,我们认识到片段范围的视图模型没有正确保留:
class MyFragment : LifecycleFragment() {
protected lateinit var viewModel: MyViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProviders.of(this).get(MyViewModel::class.java)
}
}
每次应用程序旋转时,基本上都会重新创建viewModel。这可以通过更改为google示例中使用的ActivityCreated来解决。
由于文档指出使用
onCreate
我认为这是一个片段或ViewModelProvider
错误。在咨询Android团队后,我们发现这确实是SupportFragmentManager
中的一个问题,该问题在v26.+
中解决,因此切换到
26.0.0-beta2
helped和now ViewModels按预期保留在onCreate
中