【发布时间】:2013-12-04 22:41:08
【问题描述】:
在我的应用程序中,我在AsyncTask 中使用HttpURLConnection 下载文件。如果文件下载时间过长,那么我想取消它;我通过关闭流并在HttpURLConnection 对象上调用disconnect() 来做到这一点。多年来,该代码在 Android 中完美运行。然而,既然 KitKat 出来了,问题就出现了。具体来说,disconnect() 调用本身需要几秒钟或更长时间才能完成。在 KitKat 之前的设备中,它需要一毫秒或更短的时间。真正奇怪的是,当我在单独的线程上执行断开调用时,它又真的很快了。所以在AsyncTask的doInBackground方法中调用它一定是个问题。需要注意的一件事是我的AsyncTask 确实有一个Looper.prepare() 电话。
有谁知道 KitKat 和其他 Android 版本的区别是什么?我梳理了更改列表,没有看到与此问题相关的任何内容。
【问题讨论】:
-
遇到同样的问题
-
我看到了类似的问题;我做了一些调查,这是关闭流的方式发生了变化。我已经详细介绍了here - 不幸的是我还没有修复。
-
同样的结果,在单独的线程上断开连接也会给我带来同样的延迟。
标签: android android-asynctask httpurlconnection android-4.4-kitkat