@powato

Как проверить, что все файлы загружены (используя Picasso)?

Я хочу перед отрисовкой MainActivity проверить, что все файлы загружены:
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    getBitmapsByURLs(urls);
    // здесь бы знать, что да, всё уже загружено, вот список Bitmap'ов. 
}

public void getBitmapsByURLs(List<String> urls) {
    final List<Target> targets = new ArrayList<>();

    for (int i = 0; i < urls.size(); i++) {
        final int k = i;
        Target target = new Target() {

            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                Log.i("TEMP", "Loaded: " + k);
                targets.remove(this);
            }

            @Override
            public void onBitmapFailed(Drawable errorDrawable) {
                targets.remove(this);
            }

            @Override
            public void onPrepareLoad(Drawable placeHolderDrawable) {
                Log.i("TEMP", "Preparing: " + k);
            }
        };
        targets.add(target);
        Picasso.with(this)
                .load(urls.get(i))
                .memoryPolicy(NO_CACHE, NO_STORE)
                .into(target);
    }
}


Как я могу проверить? Если я добавлю в onCreate (после getBitmapsByURLs) while, то тогда он будет бесконечным, потому что запустится до того, как все картинки загрузятся. Подскажите пожалуйста, как правильно сделать? Я ещё учусь.
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы