1.依赖
implementation 'io.reactivex.rxjava2:rxjava:2.0.1'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
2.代码
package com.example.android.rxjavademo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.Observer;
import io.reactivex.Scheduler;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//rxJavaBaseUse();//基础类
//rxJavaNormol();//常用写法
rxJavaDealyJump();//延迟跳转
}
//RxJava 基础类
public void rxJavaBaseUse(){
//被观察者
Observable novel = Observable.create(new ObservableOnSubscribe() {
@Override
public void subscribe(ObservableEmitter emitter) throws Exception {
emitter.onNext("连载1");
emitter.onNext("连载2");
emitter.onNext("连载3");
emitter.onComplete();
}
});
//观察者
Observer reader = new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String value) {
//value 打印连载1,2,3
System.out.println(value);
if("连载3".equals(value)){
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
};
novel.subscribe(reader);//一行代码搞定
}
//RxJava常用写法
public void rxJavaNormol(){
Observable.create(new ObservableOnSubscribe() {
@Override
public void subscribe(ObservableEmitter emitter) throws Exception {
emitter.onNext("连载1");
emitter.onNext("连载2");
emitter.onNext("连载3");
emitter.onComplete();
}
})
.observeOn(AndroidSchedulers.mainThread())//主线程
.subscribeOn(Schedulers.io())//执行在io线程
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String value) {
//value 打印连载1,2,3
System.out.println(value);
if("连载3".equals(value)){
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
private static Disposable mDisposable;
//延迟跳转
public void rxJavaDealyJump() {
Observable.timer(5, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())//主线程
.subscribeOn(Schedulers.io())//执行在io线程
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Long value) {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
}