文章目录
设备旋转导致activity销毁与新建有时也令人头疼,比如,设备旋转后,GeoQuiz 应用将回到第一道题。
为了让屏幕旋转时,保留内存中 currentIndex 的值, 需要用 ViewModel 保存UI数据,这样旋转后新建的 MainActivity 的 currentIndex 值仍为原值,保证的数据持久化。
引入 ViewModel,需在 buidle.gradle 添加如下依赖:
dependencies {
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
}
4.1 添加ViewModel
ViewModel 和某种特殊用户屏相关联, 适合存管处理屏显数据的逻辑。
ViewModel 可将所有显示在用户界面上的数据,汇集、格式化后,供其他对象读取。
ViewModel在 androidx.lifecycle 包里。
首先创建一个 QuizViewModel 类,它是 ViewModel 的子类,代码如下:
本文介绍了如何在Android应用中使用ViewModel和onSaveInstanceState来保存和恢复UI状态,特别是在设备旋转时。详细讲解了ViewModel的生命周期、如何添加ViewModel以及向ViewModel添加数据。同时讨论了覆盖onSaveInstanceState函数来保存实例状态的方法,以及ViewModel与onSaveInstanceState的区别和使用场景。文章结合GeoQuiz应用实例,展示了实际操作过程。
订阅专栏 解锁全文
2571

被折叠的 条评论
为什么被折叠?



