使用sqlbrite时,使用groupBy()后无法使用rxjava函数toList()。这是我的代码:
QueryObservable query = jetAnywhereDB.createQuery(Item.TABLE, "SELECT * FROM testTable");
query.flatMap(q -> {
return q.asRows(Item.MAPPER);
}).
groupBy(item -> {
return Character.toUpperCase(item.name.charAt(0));
}).
subscribe(groupedObservable -> {
groupedObservable.subscribe(item -> {
Log.d("test", groupedObservable.getKey() + ": " + item.name);
});
});
这可以正常工作并在所有项目发出时记录它们,但是如果我将其更改为
groupedObservable.toList().subscribe(items -> {
Log.d("test", groupedObservable.getKey() + ": " + items);
});
我没有正确使用 toList() 吗?这可能是因为 sqlbrite 流没有结束,所以 rxjava 在完成 toList() 之前等待更多项目发出?