开发纪要-------相当于开发备忘录,持续更新

1. Rxjava的四种线程切换

Schedulers.io() : 代表io操作的线程, 通常用于网络,读写文件等io密集型的操作

Schedulers.computation(): 代表CPU计算密集型的操作, 例如需要大量计算的操作

Schedulers.newThread(): 代表一个常规的新线程

AndroidSchedulers.mainThread(): 代表Android的主线程

 

2.RxJava的基本使用  (IO线程做耗时操作并通知,主线程接受数据处理)

Observable.create(new ObservableOnSubscribe<String>()
{
    @Override
    public void subscribe(ObservableEmitter<String> e)
    {
        //io线程中做类似耗时处理
        for (int i = 0; i < 3; i++)
        {
            try
            {
                Thread.sleep(1000);
            } catch (InterruptedException ex)
            {
                ex.printStackTrace();
            }
            e.onNext("延时处理" + i);
        }
        // 结束后通知
        e.onComplete();
    }
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<String>()
{
    @Override
    public void onSubscribe(Disposable d)
    {

    }

    @Override
    public void onNext(String value)
    {
        // 主线程接受数据
        Log.i("zzkk", "onNext value = " + value);
    }

    @Override
    public void onError(Throwable e)
    {

    }

    @Override
    public void onComplete()
    {

    }
});

3.Rxjava的Actions  主要作用是替代不想使用subscribe的四种复写方法,需要哪个写哪个

//使用 onNextAction 来定义 onNext()
Observable.just("zzkk", "hero").subscribe(onNextAction);
//使用 onNextAction 和 onErrorAction 来定义 onNext() 和 onError()
Observable.just("zzkk", "hero").subscribe(onNextAction, onErrorAction);
//使用 onNextAction、 onErrorAction 和 onCompletedAction 来定义 onNext()、 onError() 和 onCompleted()
Observable.just("zzkk", "hero").subscribe(onNextAction, onErrorAction, onCompletedAction);
//但是在rxjava的源码里,还是将action转换为subscribe进行处理,只是方便使用

4.Rxjava常见操作符含义

  1. Observable 的创建

    1. from()

    2. just()

    3. create()

    4. interval()

    5. timer()

    6. range()

    7. error()    

    8. defer()

  2. 重做

    1. repeat()

    2. repeatWhen()

  3. 重试

    1. retry()

    2. retryWhen()

  4. 变换

    1. map()

    2. flatMap()

  5. 过滤

    1. filter()

    2. first()

    3. last()

    4. skip()

    5. skipLast()

    6. take()

    7. takeLast()

    8. sample()

    9. elementAt()

    10. elementAtOrDefault()

    11. ignoreElements()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章