我想知道本文中介绍的架构:public void loadBitmap(int resId, ImageView imageView) { final String imageKey = String.valueOf(resId); final Bitmap bitmap = getBitmapFromMemCache(imageKey); if (bitmap != null) { mImageView.setImageBitmap(bitmap); } else { mImageView.setImageResource(R.drawable.image_placeholder); BitmapWorkerTask task = new BitmapWorkerTask(mImageView); task.execute(resId); }}class BitmapWorkerTask extends AsyncTask<Integer, Void, Bitmap> { ... // Decode image in background. @Override protected Bitmap doInBackground(Integer... params) { final Bitmap bitmap = decodeSampledBitmapFromResource( getResources(), params[0], 100, 100)); addBitmapToMemoryCache(String.valueOf(params[0]), bitmap); return bitmap; } ...}loadBitmap 检查缓存是否存在,分出一个异步任务,然后该任务将图像放入缓存中。我想知道这是否有风险,因为它不是原子的 - 您有一个组件检查缓存,另一个组件将内容放入缓存。是不是更好将存在检查移至 doInBackground;或者创建其他方式,整个交互将是: Bitmap bitmap = getFromCacheOrDecode(key);你们有什么感想?
添加回答
举报
0/150
提交
取消
