安卓MVVM模式以及数据的请求与缓存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓MVVM模式以及数据的请求与缓存相关的知识,希望对你有一定的参考价值。

参考技术A MVVM模式就相当于把ViewModel改名为Presener,其他基本相同。在ViewModel中处理数据逻辑,调用数据请求。但它和MVP的区别是可以双向绑定,ViewModel中数据的改变可以直接反应在View上,而View的修改也可以影响ViewModel,这样就省去Presenter和View之间的大量的调用接口。

谷歌官方提供了一个ViewModel类。这个类主要用来保存View的数据,一般在Activity的onCreate()方法中初始化ViewModel,但如果第二次调用onCreate(),那获取到的ViewModel依然是第一次生成的那个实例,这就保证了数据的连贯。一般使用的场景为当屏幕旋转时,Activity会重新调用onCreate()方法,但这时ViewModel依然能保存之前的数据。但Activity完全finish时,ViewModel才会被清空。

使用ViewModel还有其他好处,比如方便同一个Activity中不同的Fragment直接的通信,可以避免内存泄漏等等。

以下是ViewModel的基本使用方法,来自 官网 :

ViewModel一般和LiveData一起用。LiveData中的数据发生改变时,能发送通知给观察者,观察者就能修改相应的View。这也使得MVVM模式获取数据时可以直接返回一个结果,而不用等网络请求数据成功后再通过回调返回数据,因为在回调中修改数据之后,LiveData会自动通知大家这个数据被修改了。

除此之外谷歌还提供了其他的架构组件,包括Lifecycle和Room等,可以查看官网的介绍。

以上是关于安卓MVVM模式以及数据的请求与缓存的主要内容,如果未能解决你的问题,请参考以下文章

Android开发之MVVM模式实践:协程与网络请求的结合

MVCMVP与MVVM架构模式

iOS 基于 MVVM 编程实践(附上简单的demo)

ajax请求请求数据缓存问题分析以及解决方案

前端缓存那些事

MVVM模式在iOS中常用场景