我应该使用ViewModelProvider而不是ViewModelProviders吗?如果是这样,为什么?

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

因此,我一直在关注Android ViewModel概述,因为我需要在片段之间进行通信,在创建ViewModel时,它使用ViewModelProviders,这需要您添加依赖项。在查看ViewModelProviders的文档时,我看到了以下内容:Deprecation message

我应该继续遵循概述,添加所需的依赖关系,还是应该对其进行修改以使用ViewModelProvider?两者都有什么好处?

谢谢。

android android-fragments deprecated android-viewmodel
2个回答
1
投票

您应避免使用不建议使用的API。弃用意味着计划将其删除,并且将不会对其进行维护。

如果检查添加了弃用的提交:https://android-review.googlesource.com/c/platform/frameworks/support/+/1009889/6

如果检查过时的提交的差异,您会发现ViewModelProviders.of内部使用了建议的API。 (see diff

发行说明:https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0-alpha03

ViewModelProviders.of()已被弃用。您可以将Fragment或FragmentActivity传递给新的ViewModelProvider(ViewModelStoreOwner)构造函数以实现相同的功能。

所以这意味着您可以使用构造函数而不是ViewModelProviders.of()来实现完全相同的事情。


1
投票

我的看法是,尽可能避免使用不推荐使用的方法。关于它here有很好的讨论。至于收益,我认为后者可能会更好,因为它是最新迭代的一部分。我已经尝试过使用无限的垂直滚动recyclerView了,但我还没有注意到命名的任何大差异。

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