0

我正在使用 LiveSDK,我正在调试一些与取消下载相关的东西,并遇到了一个奇怪的行为:当调用 InputStrem.close() 时,它需要很长时间,与正在下载的文件大小成正比,在其他方法中当我关闭 InputStream 时,我写了从互联网下载文件,它立即关闭,所以这对我来说真的很奇怪。有谁知道为什么会发生这种情况?

我遇到了这个链接,可能有人有助于理解这个问题,但我做不到。

4

1 回答 1

0

问题是使用的流是 ContentLengthInputStream ,其中文档说明如下:

“请注意,即使调用 close 时,此类也永远不会关闭底层流。相反,它将读取直到其关闭限制的“结束”,这允许无缝执行后续 HTTP 1.1 请求,同时不需要客户端记住阅读响应的全部内容。”

我没有找到帮助我理解这个类的真正工作原理的文档或其他东西,但是这个类的 close 方法并没有真正关闭它真的很不直观。要强制停止下载,必须调用HttpApiRequest.abort()并且 InputStream 将自动关闭。

于 2013-09-03T13:22:06.273 回答