我有代码可以从我的房间数据库中删除所有用户。为此,我使用了rxJava 2。问题是,我订阅了接收所有用户,毕竟删除了所有用户,但我不知道如何取消订阅,不再接收有关用户的信息。
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())
}
您从订阅中分配一个Disposable
:
val disposable: Disposable = getAllUsers().subscribeOn(io()).subscribe { users ->
users.forEach { deleteUser(it) }
}
当你不想再收到任何更新或你的课程生命周期结束时,你可以:
disposable.dispose()