【发布时间】:2021-04-25 07:09:20
【问题描述】:
我有一个 ViewModelProvider.Factory 实例,它负责实例化 ViewModel 并将存储库注入 ViewModel。
这对 Fragments 很有效,因为我只需为我的自定义 Fragment 工厂提供 ViewModel 工厂:
this.supportFragmentManager.fragmentFactory = MyFragmentFactory(myViewModelFactory)
片段工厂在实例化片段时将 ViewModel 工厂注入片段。然后 Fragments 可以通过以下方式访问 ViewModel:
mapViewModel = ViewModelProvider(this, myViewModelFactory).get(MyViewModel::class.java)
但是,我想启动一个新的 Activity,它也需要访问同一个 ViewModel 工厂。
我可以在不使用全局变量的情况下跨 Activity 共享我的 ViewModelProvider.Factory 实例吗?
【问题讨论】:
标签: android android-activity dependency-injection android-lifecycle