活动之间的数据传输。 Kotlin Singleton有参数吗?其他问题

问题描述 投票:0回答:1

活动之间需要具有五个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非常适合在片段之间进行数据传输,但是...

android kotlin singleton viewmodel
1个回答
0
投票

如果您的数据在整个应用程序中都使用,并且您的数据量很小,那么单例对我来说很有意义。但不是“ ViewModel”单例。您的模型类应该是单例,而不是ViewModel,后者包含使用模型数据的逻辑,并且应将其范围限定为Activity(以及为每个Activity创建的新实例)。

© www.soinside.com 2019 - 2024. All rights reserved.