MVVM - 片段作为 ViewModel 方法的参数

MVVM - fragment as a parameter to ViewModel's method

我正在 MVVM 架构中构建自己的应用程序,我了解到 ViewModel 不应该引用视图或上下文,但是 ViewModel 中方法的参数是 Fragment 怎么样?我在一些 MVVM 项目(尤其是使用 Firebase Google SignIn)中多次看到它,我想知道这是正确的方法吗?

这不是个好主意,因为:

  1. 违背MVVM原则,ViewModel不应该知道View.
  2. 在 android 中,如果您使用 Arch ViewModel,您还有另一个缺点 -> 在某些情况下,ViewModels 会比视图寿命更长,例如方向改变。因此,引用视图 (Fragment/Activity) 可能会导致内存泄漏,因为 GC 无法释放该视图。