開發紀要-------相當於開發備忘錄,持續更新

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()

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