srv*_*rvy 7 android rx-java2 android-room
如何使用带有RxJava的Android Room进行单行查询?我能够查询项目列表,没有问题.在这里,我想查找是否存在特定行.根据文档,看起来我可以返回Single并检查EmptyResultSetException异常,如果不存在行.
我可以有类似的东西:
@Query("SELECT * FROM Users WHERE userId = :id LIMIT 1")
Single<User> findByUserId(String userId);
Run Code Online (Sandbox Code Playgroud)
我该如何使用此电话?看起来有一些onError/onSuccess但在Single <>上找不到那些方法.
usersDao.findByUserId("xxx").???
Run Code Online (Sandbox Code Playgroud)
任何工作的例子都会很棒!
根据文档,看起来我可以返回Single并检查EmptyResultSetException异常,如果不存在行.
或者,User如果您通过其他方式处理背景线程,则返回.
@Query("SELECT * FROM Users WHERE userId = :id")
User findByUserId(String userId);
Run Code Online (Sandbox Code Playgroud)
我该如何使用此电话?
usersDao.findByUserId("xxx")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(user -> { ... }, error -> { ... });
Run Code Online (Sandbox Code Playgroud)
在这里,我展示subscribe()了两个lambda表达式,用于User和错误.您可以使用两个Consumer对象.我还假设你有rxandroid一个依赖关系,AndroidSchedulers.mainThread()并希望User在该线程上传递给你.
IOW,您使用它的方式与使用SingleRxJava中的任何其他方法相同.细节将根据您的需求而有所不同.
| 归档时间: |
|
| 查看次数: |
5088 次 |
| 最近记录: |