Я хочу перед отрисовкой 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
, то тогда он будет бесконечным, потому что запустится до того, как все картинки загрузятся. Подскажите пожалуйста, как правильно сделать? Я ещё учусь.