我正在寻找一个更完整的库,使我能够取消长时间运行的 http 请求(例如文件上传,至少 100 MB 的数据)。
我见过 Volley 提供了一个取消 API,但它似乎只是处理不调用回调并且实际上并没有停止执行(我可能错了)也不建议长时间运行请求。
我也一直在查看 ION https://github.com/koush/ion,它应该能够处理取消,因为它返回一个可以取消的未来任务,但我真的不知道这是否是正确的选择对于我的情况。我不希望请求并行运行,而是按顺序运行。
我自己也编写了这样一个库(https://github.com/darko1002001/android-rest-client),我已经使用了很长时间并且运行良好,我已经做了一些解决方法以适应在我遇到的某些情况下取消请求和进度更新,但老实说,我并不觉得它足够干净或足够强大来满足这个要求。
我通常使用线程池来执行请求,但将长时间运行的请求移动到单个线程池队列中,以便其他短请求仍然执行而不会被阻塞,而是长时间操作。我觉得如果我仍然必须自己管理请求执行以对长时间运行的请求保持顺序,我的解决方法会更好。
有人可以分享他/她在构建此类功能方面的经验吗?关于使用什么的任何建议/建议?