2012-09-22 12 views
8

Estoy haciendo un cargador de imágenes para cargar imágenes en listas, por lo que para que sea sencillo, todo debe ejecutarse en el hilo de fondo, excepto al configurar la imagen en la vista. El problema es que Runnable en el código siguiente a veces no se ejecuta. Llamo al método setImage desde hilos de fondo.View.post() no llamado?

protected void setImage(final ImageView img, final Bitmap bm, String hash) { 
    img.setTag(TAG_RESPONSE, hash); 
    Log.v(TAG, "setting image bitmap1"); 
    //TODO: here is the bug - sometimes the runnable below is not called 
    img.post(new Runnable() { 

     @Override 
     public void run() { 
      Log.v(TAG, "setting image bitmap2"); 
      img.setImageBitmap(bm); 
      img.invalidate(); 
     } 
    }); 

} 

Cualquiera tiene alguna idea ¿Qué estoy haciendo mal?

Respuesta

13

De acuerdo con documentation, la publicación (...) debe invocarse desde subprocesos que no sean UI solo cuando la Vista esté adjuntada a una ventana. Este podría ser el problema.

+4

Reemplacé el View.post con Handler.post y parece funcionar ahora como la mantequilla. – martinpelant

Cuestiones relacionadas