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<String> novel  = Observable.create(new ObservableOnSubscribe<String>() {
            @Override
            public void subscribe(ObservableEmitter<String> emitter) throws Exception {
                emitter.onNext("连载1");
                emitter.onNext("连载2");
                emitter.onNext("连载3");
                emitter.onComplete();
        //观察者
        Observer<String> reader = new Observer<String>() {
            @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<String>() {
            @Override
            public void subscribe(ObservableEmitter<String> emitter) throws Exception {
                emitter.onNext("连载1");
                emitter.onNext("连载2");
                emitter.onNext("连载3");
                emitter.onComplete();
        .observeOn(AndroidSchedulers.mainThread())//主线程
        .subscribeOn(Schedulers.io())//执行在io线程
        .subscribe(new Observer<String>() {
            @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<Long>() {
            @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() {