0

目前我想创建一个具有某种注册和支付流程的应用程序。

我使用MaterialStepper 库来创建一个ActivityFragments每个库代表流程中的一个步骤。

Activity一个 Android 架构组件ViewModelViewModel包含Fragment. 我对输入字段使用LiveData和双向数据绑定。一些数据在几个片段中被重用,Fragments这就是为什么我只ViewModel对几个片段使用一个。

当应用程序处于前台时,它会按预期工作,Fragments重新创建并且字段保持其值。

我现在的问题是当我暂停活动并稍后恢复时。ViewModel本身也可以重新创建,因此会丢失其数据。

在这种情况下避免数据丢失的好方法是什么?我在一篇文章中读到,您应该在其中存储一些值onSaveInstanceState(例如,重新创建的搜索查询ViewModel)。但是在我的情况下,对于大约 30 个输入字段来说,这不是很多吗?)

当用户编辑输入字段并观察对象时, Room数据库是在数据库中插入/更新值的好方法吗?LiveData(不幸的是我还没有经验Room

我会很高兴有任何帮助或示例(:

4

0 回答 0