android - View.post() 没有被调用?

标签 android

我正在制作一个用于将图像加载到列表中的图像加载器 - 所以为了使其流畅,除了将图像设置到 View 之外,所有内容都需要在后台线程中运行。 问题是下面代码中的 Runnable 有时不会执行。 我正在从后台线程调用 setImage 方法。

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

}

有人知道我做错了什么吗?

最佳答案

根据documentation ,仅当 View 附加到窗口时,才应从非 UI 线程调用 post(...)。这可能是问题所在。

关于android - View.post() 没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12544732/

相关文章:

android - Flutter 在 ListView 中不显示有状态的子 Widget

安卓服务

Android:为什么我无法为 TextView 背景使用选择器

java - http post 在 Android 应用程序中不起作用

android - 计算Android MapView当前显示的区域

android - 使用 SimonVT 的 android-menudrawer 将滑动菜单添加到 Activity 中

android - 图像中的嵌套按钮

java - 安卓工作室 : cannot resolve symbol

android - mvvmcross android 中的分段 RecyclerView

java - 即使在调用 RemoveObserver 之后,Livedata 仍会继续观察