Flatten Observable<Observable<Cursor>> to Observable<Cursor>

五迷三道 提交于 2019-12-05 13:29:15

Is there a better way to flatten Observable<Observable<Cursor>> to Observable<Cursor>?

Yes, you can use Observable.concat method:

public static void main(String[] args) {
    final Observable<String> observable = Observable.just("1", "2");
    final Observable<Observable<String>> nested = observable.map(value -> Observable.just(value + "1", value + "2"));
    final Observable<String> flattened = Observable.concat(nested);

    flattened.subscribe(System.out::println);
}

UPDATE

There are actually some other methods to transform an Observable<Observable<Cursor>> to Observable<Cursor>:

Just choose one that is more appropriate to you.

UPDATE 2

Another solution is to modify your code a bit and use a flatMap operator instead of map:

cursorObservable.flatMap(ContentObservable::fromCursor)
    .map(/* map to object */)
    .toList()
    .subscribe(objects -> {
        // do something with list of objects (outer collection)
    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!