我有从房间数据库中删除所有用户的代码。为此,我正在使用rxJava2。问题是我订阅了接收所有用户的权限,毕竟删除了所有用户,但是我不知道如何取消订阅以再次接收有关用户的信息。
fun deleteUser(user: User) {
Completable.fromAction {
appRepository.deleteUser(user);
appRepository.deleteByUser(user.userName)
objectiveActionManager.saveObjective(null)
profileActionManager.saveProfile(null)
}.subscribeOn(io()).subscribe()
}
fun deleteAllUsers() {
getAllUsers().subscribeOn(io()).subscribe { users ->
users.forEach { deleteUser(it) }
}
}
fun getAllUsers(): Observable<List<User>> {
return appRepository.getAllUsers()
.observeOn(AndroidSchedulers.mainThread())
}
答案 0 :(得分:1)
您通过订阅分配了Disposable
:
val disposable: Disposable = getAllUsers().subscribeOn(io()).subscribe { users ->
users.forEach { deleteUser(it) }
}
,当您不想再收到任何更新或类的生命周期结束时,您可以这样做:
disposable.dispose()