开发者社区> 问答> 正文

java线程的疑惑下载完成无法显示图片

@Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                initView();
                downloadImg();//这里有一个下载线程

                String key = hasKeyForDisk(imageUrl);

                try {

                        DiskLruCache.Snapshot snapShot = diskLruCache.get(key);
                        if (snapShot != null) {
                                InputStream is = snapShot.getInputStream(0);
                                Bitmap bitmap = BitmapFactory.decodeStream(is);
                                imageView.setImageBitmap(bitmap);
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }

downloadImg();下载一个大图片,我想问问,下面的逻辑会不会等这个线程下载完才执行呢?如果不会,那下面的逻辑需要下载的文件,怎么处理?
现在的问题是能下载文件,但是imageView.setImageBitmap(bitmap);不能显示图片.

展开
收起
蛮大人123 2016-03-10 18:48:55 2317 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你这个是安卓更新ui的问题。图片可以下载,在下载图片的时候下面的代码会执行,所以还没有等图片下载完你后面的代码已经执行,图片加载不了。可以用handler,或者异步任务,或者把需要更新的view传入进入,或者使用回调。

    2019-07-17 18:58:10
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载