活动之间需要具有五个40个字符String
变量的5-200个对象的列表/集(取决于App用户)。>
ViewModels对于片段之间的数据传输有好处,但是由于ViewModel的生命周期仅限于单个活动的生命周期,因此看来对Activity之间的数据传输不是那么好。
问题1
:是否可以使整个应用程序代替单个Activity-ViewModelStoreOwner
?如果是,怎么办?您会建议使用ViewModelSingleton吗?问题2:
改用普通的单例呢?与ViewModel和ViewModelSingleton相比,优缺点是什么?是否有可能将单例发送到垃圾收集器并且数据丢失?问题3:
Kotlin中的object
定义了一个线程安全的,延迟实例化的单例,这很了不起,但无法直接传递参数。有多种传递参数的方法。您建议什么方法,为什么?问题4:
也可以使用sharedPreferences传递数据,但似乎很慢。除了到目前为止提到的方法之外,您还可以建议其他任何快速,健壮和灵活的方法吗?谢谢。
具有5个40个字符的String变量的5-200个对象的列表/集(取决于App用户)在Activity之间必须是公用的。 ViewModels非常适合在片段之间进行数据传输,但是...
如果您的数据在整个应用程序中都使用,并且您的数据量很小,那么单例对我来说很有意义。但不是“ ViewModel”单例。您的模型类应该是单例,而不是ViewModel,后者包含使用模型数据的逻辑,并且应将其范围限定为Activity(以及为每个Activity创建的新实例)。