猿问

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);不能显示图片....


收到一只叮咚
浏览 419回答 2
2回答

慕妹3146593

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

相关分类

Java
我要回答