Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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 Livedata_Mutablelivedata - Fatal编程技术网

Android 可变实时数据与实时数据

Android 可变实时数据与实时数据,android,android-livedata,mutablelivedata,Android,Android Livedata,Mutablelivedata,好的,我明白了这个概念,但我有点困惑,mutableLiveData让您可以访问set和Post方法,您可以使用它向实时数据添加值,然后它调用观察者的onChanged方法,为什么我们不直接使用LiveData,而不是设置值,我们调用存储库来更新数据库中的列表,这不是有点安全吗???在一个带有存储库的应用程序中,该存储库提供了一个LiveData的数据视图,您绝对应该通过该存储库进行更新。在这种情况下,存储库(或它使用的数据库层,如Room)为您管理保存和设置MutableLiveData的值。

好的,我明白了这个概念,但我有点困惑,mutableLiveData让您可以访问set和Post方法,您可以使用它向实时数据添加值,然后它调用观察者的onChanged方法,为什么我们不直接使用LiveData,而不是设置值,我们调用存储库来更新数据库中的列表,这不是有点安全吗???

在一个带有存储库的应用程序中,该存储库提供了一个
LiveData
的数据视图,您绝对应该通过该存储库进行更新。在这种情况下,存储库(或它使用的数据库层,如Room)为您管理保存和设置
MutableLiveData
的值。只有当您是数据的所有者/提供者时,才应该在
MutableLiveData
上设置值。

ok,这意味着对于其余的层,它应该是LiveData,但实际上,在存储库或数据库的某个地方,它应该使用MutableLiveData将值添加到我们的对象列表中?@ChukwudiOgbonna-Yep!完全正确。