Android 如何在活动之间共享ViewModelProvider.Factory实例

Android 如何在活动之间共享ViewModelProvider.Factory实例,android,android-activity,dependency-injection,android-lifecycle,Android,Android Activity,Dependency Injection,Android Lifecycle,我有一个ViewModelProvider.Factory实例,负责实例化ViewModels并将存储库注入ViewModels 这适用于片段,因为我只需为自定义片段工厂提供ViewModel工厂: this.supportFragmentManager.fragmentFactory=MyFragmentFactory(myViewModelFactory) 片段工厂在实例化片段时将ViewModel工厂注入到片段中。然后,片段可以通过以下方式访问ViewModels: mapViewMod

我有一个ViewModelProvider.Factory实例,负责实例化ViewModels并将存储库注入ViewModels

这适用于片段,因为我只需为自定义片段工厂提供ViewModel工厂:

this.supportFragmentManager.fragmentFactory=MyFragmentFactory(myViewModelFactory)
片段工厂在实例化片段时将ViewModel工厂注入到片段中。然后,片段可以通过以下方式访问ViewModels:

mapViewModel=ViewModelProvider(这是myViewModelFactory).get(MyViewModel::class.java)
但是,我想启动一个新的活动,该活动还需要访问同一个ViewModel工厂


我是否可以在不使用全局变量的情况下跨活动共享ViewModelProvider.Factory实例?

使用公共类概念。创建所需数据类型的公共类和公共静态变量,并在其中存储值,需要访问时只需使用公共变量。\u变量\u名称

Public class Common{
  public static REQUIRED_DATATYPE variableName;
  }
将您需要在其他活动中访问的值存储为
Common.variableName=您的_值
当您需要使用时,只需键入
Common.variableName


如果有不清楚的地方,请随时提问。

谢谢您的回答,但问题要求提供一种避免使用全局变量的方法。然后您可以使用sharedViewModelAs。据我所知,这仍然需要一个全局变量。我已经对此进行了更多的研究,在活动之间共享非平凡数据时,似乎无法避免使用一些全局变量。使用bundle共享数据