Android 2.2-仅每2个文件下载一次-另一个文件失败

Android 2.2-仅每2个文件下载一次-另一个文件失败,android,download,Android,Download,我是Android的新手,正在开发我的第一个应用程序 我正在使用以下代码从我的网站下载10张图片 private class DownloadImages extends AsyncTask<Integer, Integer, Integer> { @Override protected Integer doInBackground(Integer... pic_ids){ int count = pic_ids.length; f

我是Android的新手,正在开发我的第一个应用程序

我正在使用以下代码从我的网站下载10张图片

private class DownloadImages extends AsyncTask<Integer, Integer, Integer> {

    @Override
    protected Integer doInBackground(Integer... pic_ids){

        int count = pic_ids.length;
        for (int i = 0; i < count; i++) {

            // download the image from website ...
            String url = "http://www.mysite.com/pic.php?pid=" + pic_ids[i];
            DownloadFromUrl(url, pic_ids[i] + ".jpg");
            publishProgress((int) (i + 1));
        }

        return count;
    }
}

public void DownloadFromUrl(String imageURL, String fileName){

    try {
        URL url = new URL(imageURL);
        File file = new File(getFilesDir() + "/" + fileName);

        URLConnection ucon = url.openConnection();
        InputStream is = ucon.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(is, 8192);

        ByteArrayBuffer baf = new ByteArrayBuffer(128);
        int current = 0;
        while ((current = bis.read()) != -1) {
            baf.append((byte) current);
        }

        FileOutputStream fos = new FileOutputStream(file);
        fos.write(baf.toByteArray());
        fos.close();

    } catch (Exception e) {
        Log.d("ImageManager", "Error: " + e);
    }

}
私有类下载任务{
@凌驾
受保护的整数doInBackground(整数…pic_id){
int count=pic_id.length;
for(int i=0;i
“DownloadImages”被传递一个10个ID的数组。所有的都被处理了(我有Log.d语句要检查),但是,实际上只有1/2被下载。不是以随机方式:第一个是下载的,第二个不是,第三个是下载的,第四个不是等。这意味着:文件都写入手机/模拟器,但那些“失败”的文件是空的

当我用剩下的5张图片(第一次没有下载的图片)重新开始时,同样的事情发生了(第一张下载了,第二张没有,…)

我在日志中没有看到错误。 添加对baf.length的检查表明,对于失败的文件,该值为0


有什么想法吗

这已经过期很久了,但几个月前我也遇到了同样的问题。奇怪的是,它只是在与SSL连接时发生的


我最终不得不实现一个检查器,以查看它是否真的下载了,如果没有再次尝试(在每个文件第二次尝试后终止)。

查看LogCat输出,并将其发布在此处。可能有一些抛出的异常或有助于解决此问题的东西。@Lukas:我在这里发布之前检查了LogCat的输出。里面什么都没有,至少没有错误。奇怪的是,它在我的真实手机上似乎运行良好,但问题仍然存在于模拟器中…@Lukas:在我的手机上运行(安卓2.3.3)。我已经在第二个模拟器(Android 2.3.1)中测试过了,在那里也可以正常工作。但是,它在另一个仿真器(Android 2.2)中不起作用,即使在重新启动仿真器之后也不起作用。这可能与安卓2.2有关,还是仅仅与模拟器有关?我让人在一部真正的2.2手机上测试过,问题也在那里。。。