Android 如果我使用活动范围创建所有视图模型,它会对内存产生怎样的影响?
我正在使用新的Android体系结构组件:MVVM、LiveData等。正如Android文档和许多博客所建议的那样,为了在片段之间共享数据,我们应该创建SharedViewModel,每个片段将使用活动范围的ViewModelProviders访问它 我只是想知道,如果我使用活动范围创建所有ViewModels,是否会对内存产生影响?Android 如果我使用活动范围创建所有视图模型,它会对内存产生怎样的影响?,android,android-architecture-components,android-livedata,Android,Android Architecture Components,Android Livedata,我正在使用新的Android体系结构组件:MVVM、LiveData等。正如Android文档和许多博客所建议的那样,为了在片段之间共享数据,我们应该创建SharedViewModel,每个片段将使用活动范围的ViewModelProviders访问它 我只是想知道,如果我使用活动范围创建所有ViewModels,是否会对内存产生影响? 它们是否会在Android内存不足时自动销毁?不,您应该知道内存问题 在导航AAC中,谷歌推荐单活动应用程序 但这在某些方面是困难的 所以我使用分离的活动来使用
它们是否会在Android内存不足时自动销毁?不,您应该知道内存问题 在导航AAC中,谷歌推荐单活动应用程序 但这在某些方面是困难的 所以我使用分离的活动来使用相同的视图模型范围 如果a、b、c必须使用相同的Viewmodel,只需为它们创建一个a活动,并用d、e片段(在b活动中)分隔
当片段彼此通信或应该使用相同的数据时,使用共享视图模型是很常见的,而不是所有分离的片段 对所有片段使用单个ViewModel是一种不好的做法,会进一步影响内存,降低代码的简单性,并使ViewModel成为决定所有其他组件的上帝对象 每个活动/片段都有自己的ViewModel,并管理自己的数据和ViewModel生命周期,这是很正常的