Volley - NetworkImageView czasami nie wyświetla obrazu błędu?

Postanowiłem więc wypróbować noweBiblioteka siatkówki jak pokazano naGoogle IO 2013.

Wypróbowałem to, korzystając z łatwego rozwiązaniaNetworkImageView aby wyświetlić wiele obrazów na aGridView.

Działa dobrze i wyświetla obrazy, ale jeśli pozwolę, aby pobierał obrazy, a następnie wyłączam WiFi podczas pobierania, nie wyświetla się błąd, tak jakby wszystko nadal się ładowało. Nie tylko to, ale jeśli przywrócę połączenie, nie wznowi ładowania.

Dlaczego tak się dzieje i jak mogę to naprawić? Może to właściwie błąd?

Oto mój przykładowy kod, jeśli ktoś chce go wypróbować (BitmapCacheLru kodtutaj):

public class MainActivity extends Activity {
    private static final int COLUMNS_COUNT = 4;
    private RequestQueue _requestQueue;
    private ImageLoader _imageLoader;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        _requestQueue=Volley.newRequestQueue(this);
        _imageLoader=new ImageLoader(_requestQueue, new BitmapLruCache());

        final GridView gridView = new GridView(this);
        gridView.setNumColumns(COLUMNS_COUNT);
        final int screenWidth = getResources().getDisplayMetrics().widthPixels;

        gridView.setAdapter(new BaseAdapter() {
            @Override
            public View getView(final int position, final View convertView, final ViewGroup parent) {
                NetworkImageView rootView = (NetworkImageView) convertView;

                if (rootView == null) {
                    rootView = new NetworkImageView(MainActivity.this);
                    rootView.setLayoutParams(new AbsListView.LayoutParams(screenWidth / COLUMNS_COUNT, screenWidth / COLUMNS_COUNT));
                    rootView.setScaleType(ScaleType.CENTER_CROP);
                    rootView.setDefaultImageResId(android.R.drawable.sym_def_app_icon);
                    rootView.setErrorImageResId(android.R.drawable.ic_dialog_alert);
                }

                final String url = getItem(position);
                rootView.setImageUrl(url, _imageLoader);
                return rootView;
            }

            @Override
            public long getItemId(final int position) {
                return 0;
            }

            @Override
            public String getItem(final int position) {
                return Images.imageThumbUrls[position];
            }

            @Override
            public int getCount() {
                return Images.imageThumbUrls.length;
            }
        });

        setContentView(gridView);
    }

    @Override
    protected void onStop() {
        _requestQueue.cancelAll(this);
        super.onStop();
    }
}

P.S. Jeśli chcesz zobaczyć kodNetworkImageView, Myślę, że jest dostępnytutaj .

questionAnswers(1)

yourAnswerToTheQuestion