LiveData如同它的名字一样,是一个可观察的数据持有者,和常规的observable不同,LiveData是具有生命周期感知的,这意味着它能够在Activity、Fragment、Service中正确的处理生命周期。 LiveData的数据源一般是ViewModel,也可以是其它可以更新LiveData的组件。当数据更新后,LiveData 就会通知它的所有观察者,比如Activiy。与RxJava...
LiveData 只是数据的储存类,本身不支持复杂的线程操作和事件序列,也没有异常处理。与 RxJava 相比,具有体积小,学习成本低等优点。 RxJava 是一个完整的基于事件的观察序列,用来处理异步操作的框架。使用 RxJava 可以方便的切换线程,同时 RxJava 拥有的众多操作符也可以让逻辑变的清晰可循。配合 Retrofit 大大地简化...
有兴趣深入学习的RxJava的可以康康《RxJava 沉思录(一):你认为 RxJava 真的好用吗?》 这里只是展示效果,用RxJava写代码的效果,等我变强了,再回来完善这一块: 输出结果如下: 随心所欲,控制线程切换~ 5、LiveData LiveData是Jetpack提供的一种响应式编程组件,可以包含任何类型的数据,并在数据发生变化时通知给观...
Retrofit 是一个建立在 OkHttp 基础之上的网络请求库,能够将我们定义的 Java 接口转化为相应的 HTTP 请求。通过 Retrofit,我们轻松发起网络请求,还能将服务器返回的数据转换为所需的格式,如 JSON 或XML。 Retrofit 的核心概念 注解 Retrofit 使用注解来描述 HTTP 请求的参数、URL 和请求方法。以下是常见的注解: @...
Livedata 是 Google 推荐的Android架构组件之一,是一个存放可被观察的数据持有类,有生命周期感知功能,解决了android开发者需要去手动处理生命周期的痛点。 比如当我们使用 Retrofit+Rxjava处理接口回调数据时,需要考虑activity 或 fragment 生命周期,以解决 onStop 或 onDestory之后回调数据的问题。现在只需要 Retrofit+Liv...
CallAdapter 是 Retrofit 的核心组件之一,用于将网络请求的结果转换为我们所需的数据类型。Retrofit 内置了常见的 CallAdapter,如 RxJavaCallAdapter 和 LiveDataCallAdapter,同时我们也可以自定义 CallAdapter,以满足特定需求。 Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .addCallAdapterFactory(RxJava...
Android官方架构组件ViewModel+LiveData+DataBinding架构属于自己的MVVM Demo运行效果 获取Bing每日一图并显示 项目结构 实现过程 1. 添加Glide、Retrofit、RxJava的依赖 implementation'com.squareup.retrofit2:retrofit:2.4.0'compile'com.squareup.retrofit2:adapter-rxjava2:2.4.0'compile'com.squareup.retrofit2:convert...
RxJava模式下的取消网络请求 privatevoidrxPostHttp() { RxHttpList rxHttpList= mRetrofit.create(RxHttpList.class); Observable<LoginBean> observable = rxHttpList.login("13113", "1131311"); observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) ...
RxJava:用于处理响应式数据流。 LiveData:用于将数据流连接到视图。 首先,我们定义模型(Model)的状态(State)类,包含天气预报的相关信息,例如温度、湿度和天气状况等。 data class WeatherState( val temperature: Float, val humidity: Float, val condition: String ) 接下来,我们创建视图(View)界面,展示天气信息,...
一般我们使用 LiveData 的observe(),当数据更新后,LiveData 会通知它的所有活跃的观察者。与 RxJava 不同的,LiveData 只会通知活跃的观察者,例如 Activity 位于 Destroyed 状态时是不活跃的,因此不会收到通知。 当然我们也可以使用 LiveData 的 observerForever() 方法进行订阅,区别是 observerForever() 不会受到 Ac...