Android rxJava 2如何在完成任务后取消订阅



我有代码可以从我的房间数据库中删除所有用户。为此,我使用了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()

最新更新