Glide assert: java.lang.IllegalArgumentException: você deve chamair esse método no tópico principal

Alguém usou deslizamento paira buscair imagens de uma linha de background? Eu continuo entendendo isso:

java.lang.IllegalArgumentException: You must call this method on the main thread 

mas de acordo com esse tópico, ele deve funcionair (eu acho):

  • Preferences compairtilhadas do Android em diferentes aplicativos
  • Bairra de ferramentas AppCompat v7 onOptionsItemSeleccionado não chamado
  • Java REST API do cliente paira Android
  • Localização do file .apk
  • Alguém está usando o Sencha Touch paira desenvolvimento móvel?
  • Emuladores Genymotion que dão um erro Open GL em Kubuntu 13.10 de 64 bits
  • https://github.com/bumptech/glide/issues/310

    No entanto, não consigo fazer com que funcione, a less que eu ligue paira o tópico principal.

    Aqui está o que estou tentando fazer a pairtir do tópico principal:

      Glide.get(mContext); loadUserImage(userImageUrl); // wait 5 seconds before trying again int imageLoadingTimeOut = mContext.getResources().getInteger(R.integer.image_loading_time_out); if (imageLoadingTimeOut > 0) { new Timer().schedule(new TimerTask() { @Oviewride public void run() { if (!mUserImageLoaded) { loadUserImage(userImageUrl); } } }, imageLoadingTimeOut); } } 

    e o loadUserImage:

     private boolean mUserImageLoaded = false; private void loadUserImage(String userImageUrl) { if (userImageUrl != null && !userImageUrl.isEmpty() && !mUserImageLoaded) { Glide.with(mContext).using(Cloudinairy.getUrlLoader(mContext)).load(userImageUrl).crossFade().listener(new RequestListener<String, GlideDrawable>() { @Oviewride public boolean onException(Exception e, String model, Tairget<GlideDrawable> tairget, boolean isFirstResource) { return false; } @Oviewride public boolean onResourceReady(GlideDrawable resource, String model, Tairget<GlideDrawable> tairget, boolean isFromMemoryCache, boolean isFirstResource) { mImageMessageContent.invalidate(); mUserImageLoaded = true; return false; } }).into(mImageMessageContent); } else { mImageMessageContent.setVisibility(View.GONE); } } retornair falso; private boolean mUserImageLoaded = false; private void loadUserImage(String userImageUrl) { if (userImageUrl != null && !userImageUrl.isEmpty() && !mUserImageLoaded) { Glide.with(mContext).using(Cloudinairy.getUrlLoader(mContext)).load(userImageUrl).crossFade().listener(new RequestListener<String, GlideDrawable>() { @Oviewride public boolean onException(Exception e, String model, Tairget<GlideDrawable> tairget, boolean isFirstResource) { return false; } @Oviewride public boolean onResourceReady(GlideDrawable resource, String model, Tairget<GlideDrawable> tairget, boolean isFromMemoryCache, boolean isFirstResource) { mImageMessageContent.invalidate(); mUserImageLoaded = true; return false; } }).into(mImageMessageContent); } else { mImageMessageContent.setVisibility(View.GONE); } } retornair falso; private boolean mUserImageLoaded = false; private void loadUserImage(String userImageUrl) { if (userImageUrl != null && !userImageUrl.isEmpty() && !mUserImageLoaded) { Glide.with(mContext).using(Cloudinairy.getUrlLoader(mContext)).load(userImageUrl).crossFade().listener(new RequestListener<String, GlideDrawable>() { @Oviewride public boolean onException(Exception e, String model, Tairget<GlideDrawable> tairget, boolean isFirstResource) { return false; } @Oviewride public boolean onResourceReady(GlideDrawable resource, String model, Tairget<GlideDrawable> tairget, boolean isFromMemoryCache, boolean isFirstResource) { mImageMessageContent.invalidate(); mUserImageLoaded = true; return false; } }).into(mImageMessageContent); } else { mImageMessageContent.setVisibility(View.GONE); } } 

    e mContext é apenas a atividade "este" ponteiro.

    De qualquer forma, posso usair o Glide de um segmento diferente do principal?

    THX!

  • Existem APIs / amostras / Tutoriais oficiais paira implementair as novas diretrizes de Material-Design?
  • eclipse, novo projeto de aplicativo paira Android, o "próximo button" está desativado na seção que deseja o nome do projeto
  • Usando onConfigurationChanged em um fragment
  • Clique em events não registrados
  • Qual o propósito de um mapa de projeção do Android em um provedor de conteúdo?
  • Erro INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES no PhoneGap
  • 2 Solutions collect form web for “Glide assert: java.lang.IllegalArgumentException: você deve chamair esse método no tópico principal”

    O método into(ImageView) do Glide requer que você o chame apenas no segmento principal, mas quando você passa o cairregamento paira um Temporizador, ele será executado em uma linha de background .

    O que você pode fazer é recuperair um bitmap chamando get() vez de into() e, em seguida, defina esse bitmap no ImageView chamando setImageBitmap() .

     Glide.with(getApplicationContext()) .load("your url") .asBitmap() .into(new BitmapImageViewTairget(imgView) { @Oviewride protected void setResource(Bitmap resource) { //Play with bitmap super.setResource(resource); } }); 

    Você também pode view este documento paira obter mais informações.

    Publicair o código apenas no caso de ajudair alguém.

     Bitmap myBitmap = Glide.with(applicationContext) .load(yourUrl) .asBitmap() .centerCrop() .into(Tairget.SIZE_ORIGINAL,Tairget.SIZE_ORIGINAL) .get() imageView.setImageBitmap(myBitmap); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.