RxJava 和 RxAndroid 经常一起出现,但它们的定位和作用是不一样的。简单说:
RxJava 是核心库,RxAndroid 是 Android 平台的扩展/适配库。
RxJava 是 Reactive Extensions 的 Java 实现,核心是:
Observable / Flowable / Single / Maybe / CompletablesubscribeOn() / observeOn()特点:
示例(纯 RxJava):
Observable.just(1, 2, 3)
.subscribe(i -> System.out.println(i));
RxAndroid 是 专门为 Android 设计的扩展库,主要解决:
Android 要求 UI 操作必须在主线程。
RxAndroid 提供了:
AndroidSchedulers.mainThread()
使用方式:
observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> {
// 更新 UI
});
早期 RxAndroid 提供了 AndroidObservable 等工具,用于:
不过现在更推荐:
RxLifecycleAutoDisposeViewModel + LiveData| 对比项 | RxJava | RxAndroid |
|---|---|---|
| 定位 | 响应式编程核心库 | Android 平台适配库 |
| 是否跨平台 | ✅ 是 | ❌ 仅 Android |
| UI 线程支持 | ❌ 没有 | ✅ 有 |
| 使用场景 | 所有 Java 项目 | Android 项目 |
| 是否必须 | ✅ 必须 | ❌ 可选(但常用) |
RxAndroid 依赖 RxJava:
implementation 'io.reactivex.rxjava3:rxjava:3.x.x'
implementation 'io.reactivex.rxjava3:rxandroid:3.x.x'
RxJava 负责“怎么写异步代码”,RxAndroid 负责“在 Android 上怎么安全地切到主线程”。
如果你愿意,我也可以对比 RxJava vs Kotlin 协程,或者讲 RxAndroid 的实际使用场景。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。