RxJava 是一个在 Java 虚拟机(JVM)上实现的 响应式编程(Reactive Programming) 库,基于 观察者模式 和 异步数据流 思想,用来处理异步、基于事件的程序设计。
下面用通俗的方式给你介绍:
简单来说:
RxJava 让你用“数据流 + 操作符”的方式,优雅地处理异步任务和事件。
它的核心思想是:
数据的来源,会不断“发射”数据。
Observable<String> observable = Observable.just("A", "B", "C");
Observable:普通异步流Flowable:支持背压(Backpressure)接收数据并做出响应。
observable.subscribe(
data -> System.out.println(data), // onNext
error -> error.printStackTrace(), // onError
() -> System.out.println("完成") // onComplete
);
这是 RxJava 最强大的地方。
常见操作符:
map:转换数据filter:过滤数据flatMap:异步展开zip:合并多个流subscribeOn / observeOn:线程切换示例:
Observable.just(1, 2, 3)
.map(i -> i * 10)
.filter(i -> i > 15)
.subscribe(System.out::println);
Schedulers)传统回调:
api.getData(new Callback() {
public void onSuccess(Data d) { ... }
public void onError(Exception e) { ... }
});
RxJava:
api.getData()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> updateUI(data));
如果你愿意,我也可以:
你想从哪一块继续?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。