2012-09-22 19 views
8

Tôi đang tạo một Trình tải hình ảnh để tải hình ảnh vào danh sách - vì vậy để nó được mịn màng, mọi thứ cần phải chạy trong chuỗi nền ngoại trừ việc đặt hình ảnh vào chế độ xem. Vấn đề là Runnable trong mã dưới đây đôi khi không được thực hiện. Tôi đang gọi phương thức setImage từ chủ đề nền.View.post() không được gọi?

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(); 
     } 
    }); 

} 

Bất kỳ ai có ý tưởng gì tôi đang làm sai?

Trả lời

13

Theo số documentation, bài đăng (...) sẽ chỉ được gọi từ chuỗi không phải giao diện người dùng khi Chế độ xem được đính kèm vào cửa sổ. Nó có thể là vấn đề.

+4

Tôi đã thay thế View.post bằng Handler.post và dường như nó hoạt động như bơ bây giờ. – martinpelant

Các vấn đề liên quan