Rxjava2取消订阅后怎么终止后台任务

时间:2021-03-08 14:44:26
使用dispose取消订阅后只是不再接收而已,后台的耗时任务还在继续执行,请教怎么让后台不再继续执行?一直判断
isDisposed()这种方法太繁琐了。

3 个解决方案

#1


不能,子线程不能直接中断

#2


可以使用RxLifeCycle框架 把RxJava的生命取消订阅时机和Activity 或 Fragment 的生命周期进行绑定。

#3


如果你本身封装了cancel之类的 你可以重写dispose()这个方法,在这里取消。循环判断一个值作为是否结束,这个逻辑我觉得是没问题的。不知道你出于什么考量

#1


不能,子线程不能直接中断

#2


可以使用RxLifeCycle框架 把RxJava的生命取消订阅时机和Activity 或 Fragment 的生命周期进行绑定。

#3


如果你本身封装了cancel之类的 你可以重写dispose()这个方法,在这里取消。循环判断一个值作为是否结束,这个逻辑我觉得是没问题的。不知道你出于什么考量