0

Je suis confronté à un problème avec GlidePourquoi ce n'est pas populaire d'utiliser View.getContext()?

You cannot start a load for a destroyed activity 

Je ne vois pas ce que je viens accident signalé que cela se produit, alors j'ai vérifié mon code et j'ai vu je l'ai écrit:

public static void setImageWithGlide(Context context, String imageUrl, ImageView imageView) { 
    if (context != null && imageView != null) 
     Glide.with(context).load(imageUrl) 
       .dontAnimate().into(imageView); 
} 

Ainsi, Je l'ai fait un peu de lecture et les gens utilisent vu

1-Context, comme je l'ai fait

2 - `contexte d'application », qui ne bonne idée à al l pour de nombreuses raisons

3 - Obtenir le contexte de la View lui-même si dans mon cas, il deviendra:

public static void setImageWithGlide(String imageUrl, ImageView imageView) { 
    if (imageView != null && imageView.getContext() != null) 
     Glide.with(imageView.getContext()).load(imageUrl) 
       .dontAnimate().into(imageView); 
} 

Je ne sais pas si cela va résoudre le problème, mais pourquoi cette façon de faire est le contexte Pas populaire? quelle est la raison de ne pas l'utiliser? il me permet aussi d'économiser le contexte de passer à la méthode (qui pour moi est personnellement pas bien parce que j'aime savoir que cette méthode en utilisant le contexte que je sais quand je le passant)

so ...

1. Quel est le bon et le mauvais cas pour obtenir Context de vue? 2. Pensez-vous qu'il existe une meilleure façon de résoudre ce problème avec le glissement? A propos, je ne pense pas que l'utilisateur voyant ce crash puisse être manipulé à l'intérieur de Glide.

+2

si vous êtes face à ce problème en raison de l'assassinat de l'activité puis getContext de tout va pas non plus travaillé –

+0

que suggérez-vous? –

Répondre

0

Ce n'est pas la question de la popularité comme vous l'avez suggéré dans votre question. Ci-dessous les détails concernant le contexte différent

View.getContext():. Retourne le contexte de la vue est en cours d'exécution en Habituellement l'activité active.

Activity.getApplicationContext(): Renvoie le contexte de l'ensemble de l'application (le processus dans lequel toutes les activités sont exécutées). Utilisez ceci à la place du contexte d'activité actuel si vous avez besoin d'un contexte lié au cycle de vie de l'ensemble de l'application, pas seulement l'activité en cours.

ContextWrapper.getBaseContext(): Si vous devez accéder à un contexte à partir d'un autre contexte, utilisez un ContextWrapper. Le contexte référencé depuis l'intérieur de ContextWrapper est accessible via getBaseContext().

est Ci-dessous le lien qui peut vous aider à obtenir un peu plus d'info

http://androidforbeginners.blogspot.com/2009/12/context.html 
+0

Je comprends que, si vous avez besoin d'écrire une méthode qui charge l'image dans une vue, passeriez-vous le contexte ou l'obtenir de la vue? –