RxJava
Posted by Bruce Tsai
03/16/2016
觀察者模式與非同步執行
RxJava 是 ReactiveX 的一種實作,而 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) });