Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果我使用活动范围创建所有视图模型,它会对内存产生怎样的影响?_Android_Android Architecture Components_Android Livedata - Fatal编程技术网

Android 如果我使用活动范围创建所有视图模型,它会对内存产生怎样的影响?

Android 如果我使用活动范围创建所有视图模型,它会对内存产生怎样的影响?,android,android-architecture-components,android-livedata,Android,Android Architecture Components,Android Livedata,我正在使用新的Android体系结构组件:MVVM、LiveData等。正如Android文档和许多博客所建议的那样,为了在片段之间共享数据,我们应该创建SharedViewModel,每个片段将使用活动范围的ViewModelProviders访问它 我只是想知道,如果我使用活动范围创建所有ViewModels,是否会对内存产生影响? 它们是否会在Android内存不足时自动销毁?不,您应该知道内存问题 在导航AAC中,谷歌推荐单活动应用程序 但这在某些方面是困难的 所以我使用分离的活动来使用

我正在使用新的Android体系结构组件:MVVM、LiveData等。正如Android文档和许多博客所建议的那样,为了在片段之间共享数据,我们应该创建SharedViewModel,每个片段将使用活动范围的ViewModelProviders访问它

我只是想知道,如果我使用活动范围创建所有ViewModels,是否会对内存产生影响?
它们是否会在Android内存不足时自动销毁?

不,您应该知道内存问题

在导航AAC中,谷歌推荐单活动应用程序

但这在某些方面是困难的

所以我使用分离的活动来使用相同的视图模型范围

如果a、b、c必须使用相同的Viewmodel,只需为它们创建一个a活动,并用d、e片段(在b活动中)分隔


当片段彼此通信或应该使用相同的数据时,使用共享视图模型是很常见的,而不是所有分离的片段

对所有片段使用单个ViewModel是一种不好的做法,会进一步影响内存,降低代码的简单性,并使ViewModel成为决定所有其他组件的上帝对象

每个活动/片段都有自己的ViewModel,并管理自己的数据和ViewModel生命周期,这是很正常的