Vous ne pouvez pas démarrer une charge pour l'un détruit l'activité dans relativelayout image à l'aide de glisse
Je suis en utilisant relativelayout pour définir une image.Pourquoi je n'étais pas à l'aide de imageview signifie, à l'intérieur de relativelayout image, je suis en train d'icônes.
Je ne sais pas quel est le problème exactement dans la finesse.J'ai posté la stacktrace et pertinente du code ci-dessous:
Logcat:
FATAL EXCEPTION: main
Process: com.app.steve, PID: 15928
java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity
at com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:134)
at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:102)
at com.bumptech.glide.Glide.with(Glide.java:644)
at com.app.steve.TabMorePagesDetailActivity$allPageDetails.onPostExecute(TabMorePagesDetailActivity.java:1050)
at com.app.steve.TabMorePagesDetailActivity$allPageDetails.onPostExecute(TabMorePagesDetailActivity.java:885)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
TabMorePagesDetailActivity.java:
RelativeLayout rlPageCoverImg;
rlPageCoverImg = (RelativeLayout)findViewById(R.id.rl_club_cover_img);
@Override
protected void onPostExecute(String response) {
super.onPostExecute(response);
dialog.dismiss();
............
String coverIMGurl = cover_avatar_obj.getString("url");
Log.e("ImgURL", coverIMGurl);
Glide.with(TabMorePagesDetailActivity.this).load(coverIMGurl).asBitmap().signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
.into(new SimpleTarget<Bitmap>(500, 500) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
Drawable drawable = new BitmapDrawable(getResources(), resource);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
rlPageCoverImg.setBackground(drawable);
}
}
});
}else {
rlPageCoverImg.setBackgroundResource(R.drawable.bg_golive);
}
@Override
protected void onDestroy()
{
super.onDestroy();
Glide.clear(rlPageCoverImg);
}
layout.xml:
<RelativeLayout
android:id="@+id/rl_club_cover_img"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@drawable/cancel_image" >
//Inside this relativelayout image, I'm using buttons and icons
</RelativeLayout>
Vous devez vous connecter pour publier un commentaire.
Utilisation:
Glide.with(getApplicationContext()).load(...)
Au lieu de:
Glide.with(TabMorePagesDetailActivity.this).load(...)
Espère qu'il permettra de résoudre votre problème~
Vous pouvez facilement vérifier le contexte est détruit ou pas manuellement;
Cela peut également être représenté comme un Kotlin fonction d'extension:
J'ai eu le même problème avant quelques jours.J'ai résolu cela en passant le contexte de l'Application de la mémoire nom de la Classe actuelle de la mémoire contexte.
Peut-être que ce sera vous aider à :-
utiliser ce code
Même que vous obtenez ce problème, puis de lire attentivement cet article "https://github.com/bumptech/glide/issues/1097"
vue d'ensemble de cette question : est-Ce un problème de glissement de la bibliothèque.
Installation de Glisse avec un paramètre qui a le bon cycle de vie. Par exemple: utiliser
Glide.with(this)
au lieu deGlide.with(getContext())
dans un affichage personnalisé.Essayez ceci avant de charger votre image avec de la Glisse, dans mon cas mirefer est un StorageReference, miimagen est une ImageView. J'ai résolu ce problème, avec cette. J'espère qu'elle pourra vous aider.