这段时间在学习 Rxjava 的过程中发现了一个比较好的国外博客,可以找到很多时下流行的框架和开发教程。具体网址如下
https://mindorks.com/blogs
本篇主要基于该博客的教程 RxJava 2 教程 了解下 RxJava 的基本用法。
RxJava 入门
- 第一步
首先下载 github sample https://github.com/amitshekhariitbhu/RxJava2-Android-Samples
导入 Android Studio 运行。
2.根据 sample 代码来到第一个简单示例界面(SimpleExampleActivity.class)
可以看到 doSomeWork() 方法内就是 RxJava 的基础用法了。
private void doSomeWork() {
getObservable()
// Run on a background thread
.subscribeOn(Schedulers.io())
// Be notified on the main thread
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getObserver());
}
这个例子将各个调用放在了各自的方法里面,其实都是一样的,现在将它还原成简单版本的。
private void doWork() {
Observable.just("Cricket", "Football")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
Log.d(TAG, " onSubscribe : " + d.isDisposed());
}
@Override
public void onNext(String value) {
Log.d(TAG, "id onNext " + android.os.Process.myTid());
textView.append(" onNext : value : " + value);
textView.append(AppConstant.LINE_SEPARATOR);
Log.d(TAG, " onNext : value : " + value);
}
@Override
public void onError(Throwable e) {
textView.append(" onError : " + e.getMessage());
textView.append(AppConstant.LINE_SEPARATOR);
Log.d(TAG, " onError : " + e.getMessage());
}
@Override
public void onComplete() {
Log.d(TAG, "id onComplete " + android.os.Process.myTid());
textView.append(" onComplete");
textView.append(AppConstant.LINE_SEPARATOR);
Log.d(TAG, " onComplete");
}
});
}
好了,这里是发送两个字符串,然后接收并显示在 textview 上面(主线程)。先别管其他的,到这里我们第一个简单的 RxJava 示例代码就出来了。可以,很强势。