为什么 ViewModelProviders 被弃用了?

Why has ViewModelProviders been deprecated?

为什么不推荐使用 ViewModelProvider?我想了解这个 class 被弃用的原因。是因为 google 在其中使用了 Service Locator 设计模式(所谓的反模式)吗?

如果您查看 the source code,您会发现 ViewModelProviders 只不过是 ViewModelProvider:

的新构造函数的包装器
public static ViewModelProvider of(@NonNull Fragment fragment) {
    return new ViewModelProvider(fragment);
}

因此,根据弃用消息,只需使用 new ViewModelProvider(this) 而不是 ViewModelProviders.of(this)