RxJava+Retrofit文件下载代码在第二次下载时没有被调用

wujushan 2017-08-25 09:13:06
在使用RxJava+Retrofit进行文件下载,下面这段代码在第一个文件下载时,可以调用并下载成功,但在第二个文件下载时,没有被调用到,找了好久没有找到原因。(netWorkApi--是声明的Retrofit接口对象,里面是一些URL调用方法)
netWorkApi.download(url)
.subscribeOn(Schedulers.io())
.unsubscribeOn(Schedulers.io())
.retryWhen(RetryWhenNetworkException())
.map(object : Func1<ResponseBody, Int> {
override fun call(responseBody: ResponseBody): Int {
Logger.t(TAG).d("write2File")
return write2File(responseBody, name)
}
}
)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(downloadSubscriber)
...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wujushan 2017-08-25
  • 打赏
  • 举报
回复
是复用了Subscriber,经你这么一说,问题应该是出在这了
水手辛巴 2017-08-25
  • 打赏
  • 举报
回复
一个subscriber接受事件会被标记为done,已结束。所以不能再次使用。如果你想要这么使用的话使用unsafeSubscribe的方法进行订阅,或则重新新建subscriber对象。(以上根据上面德假设,手快发出去还不能编辑
水手辛巴 2017-08-25
  • 打赏
  • 举报
回复
downloadSubscriber 你是复用的吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧