Używam Glide załadować obrazy i dodałem słuchacza wiedzieć, kiedy zasób jest gotowy lub jeśli wystąpił błąd dowolnego typu:Glide słuchacz nie działa
Glide.with(mContext)
.load(url)
.placeholder(R.drawable.glide_placeholder)
// use dontAnimate and not crossFade to avoid a bug with custom views
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
// do something
return true;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
// do something
return true;
}
})
.into(mCustomImageView);
Aplikacja nie działa wewnątrz onResourceReady
lub onException
ale jeśli usunąć słuchacza i niech pobieranie asynchronicznej bez wywołania zwrotnego, to działa prawidłowo:
Glide.with(mContext)
.load(url)
.placeholder(R.drawable.glide_placeholder)
// use dontAnimate and not crossFade to avoid a bug with custom views
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(mCustomImageView);
próbowałem też z GlideDrawableImageViewTarget
zamiast słuchacza do odbierania wywołań zwrotnych, ale aplikacja jest uruchamiana wewnątrz onLoadStarted
ale nigdy nie skończy insid e onLoadCleared
, onLoadFailed
i onResourceReady
.
Mówisz słuchacza onException i metody onResourceReady nie nazywa? Zwrócenie wartości true z tych metod uniemożliwi wywołanie Target, ale powinny one zawsze być wywoływane dla detektora niezależnie. –
Myślę, że musisz wywołać 'submit' w celu zainicjowania go, aby rozpocząć ładowanie –