在使用 ViewModel
和 LiveData
架构组件时,我遇到了问题。当使用 fragment
并旋转屏幕时,观察者会被触发...
我尝试在所有的 fragment 生命周期方法中移动 viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
,但没有成功。
我的场景相对简单:
- 带有电子邮件和密码的登录界面
- 用户点击“登录”按钮
- viewmodel 调用
login(email, password)
并设置 LiveData 对象的值 - 现在只需显示 Toast
此时一切都正常。但是当我旋转屏幕时,Toast 再次出现,而没有任何用户交互。
我需要在 onDestroyView()
中做些什么吗?
提前感谢!