我有一个SQLite查询返回的游标,我想知道创建一个Observable的正确方法发出游标中的每一行。如何创建光标Observable
我创建光标观察到如下,请检查如果这是正确的:
Observable<Cursor> cursorObservable = Observable.create(new ObservableOnSubscribe<Cursor>() {
@Override
public void subscribe(ObservableEmitter<Cursor> e) throws Exception {
SQLDbHelper dbHelper = SQLDbHelper.getInstance(ctx);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from " + MoviesContract.MovieEntry.TABLE_NAME, null);
if (cursor != null) {
try {
while (cursor.moveToNext() && !e.isDisposed()) {
e.onNext(cursor);
}
} catch (Exception exception) {
e.onError(exception);
} finally {
cursor.close();
}
}
if (!e.isDisposed()) {
e.onComplete();
}
}
});
请详细说明,'每一行'是什么意思?请给出例子与普通的Android代码 – yosriz
尝试使用这个库https://github.com/pushtorefresh/storio或看看他们如何与sqlite – shmakova
@yosriz由SQLite查询返回的游标包含指针行,所以我想可观察的,依次发出这些行,直到光标耗尽为止。 –