求教个下载的问题,我用2.3新加的downloadmanager下载,第一次是正常的,但是如果随后把下载的文件删除然后再次下载会出
12-26 00:58:32.097: WARN/DownloadManager(235): Aborting request for download 217: http error 416
查了下
    如果请求中包含了Range请求头,并且Range中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义If-Range请求头,那么服务器就应当返回416状态码。
    假如Range使用的是字节范围,那么这种情况就是指请求指定的所有数据范围的首字节位置都超过了当前资源的长度。服务器也应当在返回416状态码的同时,包含一个Content-Range实体头,用以指明当前资源的长度。这个响应也被禁止使用multipart/byteranges作为其 Content-Type。如果我给downloadmanager.request加上if-range,那么那种情况下会出现
12-26 00:58:32.097: WARN/DownloadManager(235): Aborting request for download 219: http error 200
200应该是成功的,但是不管是200还是416都会出现文件创建了,下载了,完成后自动删除
希望有人能帮忙看下,谢谢

解决方案 »

  1.   


    DownloadManager downloadManager = (DownloadManager) context
    .getSystemService(Context.DOWNLOAD_SERVICE);
    DownloadManager.Query query = new DownloadManager.Query();
    apkPath = path + apkPath;
    Uri uri = Uri.parse(apkPath);
    Environment.getDownloadCacheDirectory().mkdir();
    Request request = new Request(uri);
      

  2.   

    漏了一句
    request.setDestinationInExternalFilesDir(context, "", apkName+versionCode + ".apk");
    downloadManager.enqueue(request);
      

  3.   

    不好意思,不是很了解API15的东西