RxJava

Posted by Bruce Tsai
03/16/2016

觀察者模式與非同步執行

RxJavaReactiveX 的一種實作,而 ReactiveX 則是觀察者模式(Observer Design Pattern)、迭代器(Iterator Design Pattern)與 Functaional Programming 的實作,在近來的 Android 開發中頗受歡迎。最主要的概念是以非同步執行,將邏輯概念切割,結合 Functaional Programming 簡化後,強化程式的結構。上述提到的概念比較複雜,若對這些名詞不熟悉的有個印象即可。

範例

Observable.from(folders)
    .flatMap((Func1) (folder) -> { Observable.from(file.listFiles()) })
    .filter((Func1) (file) -> { file.getName().endsWith(".png") })
    .map((Func1) (file) -> { getBitmapFromFile(file) })
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe((Action1) (bitmap) -> { imageCollectorView.addImage(bitmap) });

results matching ""

    No results matching ""