不废话,直接集成
api 'io.reactivex.rxjava2:rxjava:2.0.1'
api 'io.reactivex.rxjava2:rxandroid:2.0.1'
然后就是主要的代码逻辑
/**
* Created by pw on 2019/6/3 09:57
* E-Mail Address: pw163.com
*/
public class RxActivity extends AppCompatActivity
{
private Disposable mDisposable;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rx);
init();
}
private void init() {
One();
Two();
}
private void Two() {
Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
e.onNext("连接器1");
e.onNext("连接器2");
e.onNext("连接器3");
}
}).observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.i("lng", "accept: "+s);
}
});
}
private void One() {
Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
e.onNext("连载1");
e.onNext("连载2");
e.onNext("连载3");
e.onComplete();
}
}).observeOn(AndroidSchedulers.mainThread()) //回调在主线程
.subscribeOn(Schedulers.io()) //运行在io线程
.subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
Log.i("lng", "onSubscribe: ");
}
@Override
public void onNext(String value) {
Log.i("lng", "onNext: "+value);
}
@Override
public void onError(Throwable e) {
Log.i("lng", "onError: ");
}
@Override
public void onComplete() {
Log.i("lng", "onComplete: ");
}
});
}
}
其中方法one适用于初学者刚开始写得时候使用。Two就是我们常用得开发者用到的写法,减少代码量,主要用于耗时操作,然后异步操作,主线程更新ui。最常用得是结合着retrofit请求网络数据使用较多。