我正在使用android中的单个活动应用程序,因此在使用ViewModel还是Singleton时发生冲突。对于单一活动应用程序,它们似乎执行基本相同的功能。是否有更好的变量存储在单例中而不是视图模型中?反之亦然?
答案 0 :(得分:0)
我假设您正在谈论ViewModel类。
ViewModel:实际上,您想要多个实例(因为每个实例都会有所不同),而不是单个实例可以在应用程序的运行中生存。 ViewModels的寿命不应太长(另一个原因是您不希望单例)。在整个过程中,单例是唯一的。 ViewModel对于单个Activity类是唯一的(并且,如果您启动该类的多个活动,则对于每个已启动的活动都是唯一的)。ViewModel主要用于MVVM和实时数据,并且实现起来很复杂。
只要您的应用程序上下文有效,Singleton就会保留在内存中。 单例对于您的整个过程是唯一的。
既然如此,您就会知道您将始终拥有一个活动,因此可以使用单例,因为它的实现很容易,但适用于多活动应用程序