suy*_*abh 1 java android mvvm kotlin android-jetpack
由于谷歌建议基于单一活动的应用程序。我有需要澄清的情况。
我有一个包含 3 个片段的活动,每个片段都链接到具有其他屏幕的不同片段。
我应该为每个选项卡只使用一个视图模型,还是应该使用一个具有不同屏幕的视图模型。
因为我只有一个活动并且视图模型驻留直到活动被销毁。我将为每个屏幕创建的所有 viewModel 都包含数据,直到活动被销毁。如果是这种情况,它会使我的应用程序变重。
- 我应该为每个选项卡只使用一个视图模型,还是应该使用一个具有不同屏幕的视图模型。
您应该为每个 ViewModel 使用尽可能小的范围。通常,这意味着仅与一个片段关联的数据应使用仅与该片段关联的 ViewModel。
- 因为我只有一个活动并且视图模型驻留直到活动被销毁。我将为每个屏幕创建的所有 viewModel 都包含数据,直到活动被销毁。如果是这种情况,它会使我的应用程序变重。
ViewModel 仅在ViewModelStore它们所连接的对象存在时才存在。因此,如果您有一个与片段关联的 ViewModel,它只会在该片段存在时才存在。例如,如果该片段从背面弹出或您调用remove(),则 ViewModel 将被销毁。如果您使用 Activity 作为ViewModelStoreOwner(例如,通过使用ViewModelProvider(activity))专门创建它们,则 ViewModel 仅与您的 Activity 一样长。
| 归档时间: |
|
| 查看次数: |
967 次 |
| 最近记录: |