为了为ViewModel类和Retrofit类创建LiveData类,我们首先需要了解LiveData的概念、分类、优势和应用场景。 LiveData是一种可观察的数据持有类,它是Android架构...
2、LiveDataLiveData 是一种可观察的数据存储器类,具有生命周期感知能力,意指它遵循其他应用组件如 Activity、Fragment 或 Service 生命周期,可确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。LiveData 对象通常存储在 ViewModel 对象中,并可通过 getter 方法进行访问。 3、Kotlin协程协程依附在线程上,可以实...
今天我们利用LiveData,ViewModel,retrofit2,kotlin协程来搭建一个MVVM的网络请求框架,利用数据来驱动UI更新变化,将数据和UI进行分离。 1.新建一个ApiService接口,由于我们常用的网络请求是get和post,所以这里利用retrofit定义这两张请求类型的公共方法,由于retrofit2中已经支持了对协程的支持,所以抽取的get和post方法如下: ...
现如今 Android 领域流行的网络请求框架基本都是用Retrofit 加 RxJava来搭配构建的,而以ViewModel + LiveData + Retrofit + RxJava来构建请求框架的例子要相对少得多。而本文就是以这四者作为基础组件,介绍如何一步步封装实现自己的网络请求框架(本文实现的例子不仅仅只是一个网络请求框架,同时也是在介绍应用的架构模式...
发送请求:是以json的格式进行请求的,我们配置了一个请求参数对象,然后调用retrofit请求参数配置注解BaseService: publicinterfaceBaseService{/** * 登录 * * @param * @return */@POST("oauth/token")Call<BaseResult<TokenEntity>>getToken(@BodyRequetTokenBody body);} ...
其实不能叫扯上关系吧,ViewModel和LiveData属于「架构组件」,而协程是「异步工具类」,ViewModel和LiveData搭上了协程这条快车道,让Google推了几年的AAC架构更加快的让人接受了,真香。 国际惯例,官网镇楼。 https://developer.android.com/topic/libraries/architecture/viewmodel ...
ViewModel和LiveData最早是Google提出的AAC架构中的重要成员,那么它为什么又和协程扯上关系了呢? 其实不能叫扯上关系吧,ViewModel和LiveData属于「架构组件」,而协程是「异步工具类」,ViewModel和LiveData搭上了协程这条快车道,让Google推了几年的AAC架构更加快的让人接受了,真香。
LiveData的map和switchMap方法来完成LiveData的转换 map只是对LiveData里面的值进行转换,switchMap是直接对LiveData进行转化。类似于RxJava的map与flatMap的区别 class MyViewModel : ViewModel() { val currentName by lazy { MutableLiveData<String>() } fun getCurrentName(): LiveData<String> = currentName.map { ...
本次迭代除了使用Dagger,Rxjava,Retrofit,Greendao 等外,新引入了Google官方JetPack组件中的LiveData,ViewModel,LifeCycle,WorkManger等。并把工程框架变为模块化,独立的业务模块可以单独的进行调试,管理。 ### 项目的框架图如下 项目框架图如上图所示,这里约定一个称谓:Main,News可以单独依赖Base调试,App壳工程也可以...
在ViewModel中,我们可以使用Retrofit来进行网络请求,代码如下所示: classMyViewModel:ViewModel(){privatevalapiService=Retrofit.Builder().baseUrl(".addConverterFactory(GsonConverterFactory.create()).build().create(ApiService::class.java)funfetchData(){viewModelScope.launch{try{valresponse=apiService.getData(...