Android Picasso随机加载失败

时间:2014-11-25 22:52:41

标签: android image listview caching picasso

我尝试使用Picasso进行缓存,在ListView中加载一堆图像(5到10之间)。 我第一次请求服务器上的所有图像,因为它们尚未缓存。在使用Picasso之前,所有这些都用于下载确定,但现在其中一些在下载中失败了,并不总是相同的。

这是我的代码片段:

public View getView(int position, View convertView, ViewGroup parent) {

        //ViewHolder holder = null;
        holder = null;

        if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) {
            holder = new ViewHolder();
            LayoutInflater mInflater = LayoutInflater.from(context);
            convertView = mInflater.inflate(R.layout.item_app, null);

            holder.promoImage = (ImageView) convertView.findViewById(R.id.promoAppImage);
            holder.appProgress = (ProgressBar) convertView.findViewById(R.id.appProgress);
            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        loadBitmap(position, holder);

        return convertView;
    }

    public void loadBitmap(int position, final ViewHolder holder) {
        final AppWithImage app = apps.get(position);

        fileLoader.setOnFileLoadedListener(this);
        Picasso.with(context).load(url).fit().tag("homeTag").into(holder.promoImage, new Callback() {
            @Override
            public void onSuccess() {
                Log.d("success", "success");
                //holder.promoImage.setImageBitmap(app.getPromo());
                holder.promoImage.setVisibility(View.VISIBLE);
                holder.appProgress.setVisibility(View.GONE);
            }

            @Override
            public void onError() {
                Log.d("error", "error");
            }
        });
    }

这就是我在控制台日志中得到的结果:

11-25 22:46:27.881  27096-27096/com... D/error﹕ error
11-25 22:46:27.881  27096-27096/com... D/success﹕ success
11-25 22:46:28.678  27096-27096/com... D/success﹕ success
11-25 22:46:29.022  27096-27096/com... D/success﹕ success

图像很大,介于200KB到500KB之间,但我没有看到他们下载失败的原因。有没有办法让他们逐个下载或至少不是同时下载?

除此之外,图像数量最初为5,前两个失败,但我只在控制台中看到一条错误消息。

0 个答案:

没有答案