在谷歌自己的Volley图像缓存教程中
推荐的缓存大小为三屏幕的图片,相当于7MB。我有一个社交媒体应用程序,其中包含一个新闻源。
1-) 我的第一个问题是缓存满了之后会发生什么?
2-) 我考虑每小时清除一次缓存,这样缓存将包括更新的内容。这种做法合理吗?类似于新闻源(例如Instagram)的应用程序中的图片缓存逻辑是什么?
3-) 如何删除特定项目的旧缓存并强制重新下载?我尝试了这个解决方案,但它没有起作用:
// Returns a cache size equal to approximately three screens worth of images.
public static int getCacheSize(Context ctx) {
final DisplayMetrics displayMetrics = ctx.getResources().
getDisplayMetrics();
final int screenWidth = displayMetrics.widthPixels;
final int screenHeight = displayMetrics.heightPixels;
// 4 bytes per pixel
final int screenBytes = screenWidth * screenHeight * 4;
return screenBytes * 3;
}
推荐的缓存大小为三屏幕的图片,相当于7MB。我有一个社交媒体应用程序,其中包含一个新闻源。
1-) 我的第一个问题是缓存满了之后会发生什么?
2-) 我考虑每小时清除一次缓存,这样缓存将包括更新的内容。这种做法合理吗?类似于新闻源(例如Instagram)的应用程序中的图片缓存逻辑是什么?
3-) 如何删除特定项目的旧缓存并强制重新下载?我尝试了这个解决方案,但它没有起作用:
VolleySingleton.getInstance().getRequestQueue().getCache().remove(IMAGE_URL);
mNetworkImageView = (NetworkImageView) getView().findViewById(R.id.networkImageView);
mImageLoader = VolleySingleton.getInstance().getImageLoader();
mNetworkImageView.setImageUrl(IMAGE_URL, mImageLoader);
我有很多与我的第三个问题相似的克隆问题,但没有一个得到答案。
谢谢你的帮助。 :)