我试图在我的.evictAll()缓存上调用ImageLoader (),我想不出如何访问该方法
private VolleySingleton(){
mRequestQueue = Volley.newRequestQueue(VolleyApplication.getAppContext());
mImageLoader = new ImageLoader(this.mRequestQueue, new ImageLoader.ImageCache() {
private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(10);
public void flushLruCache(){ mCache.evictAll();};
public void putBitmap(String url, Bitmap bitmap) {
mCache.put(url, bitmap);
}
public Bitmap getBitmap(String url) {
return mCache.get(url);
}
});
}
mRequestQueue = VolleySingleton.getInstance().getRequestQueue();
mImageLoader = VolleySingleton.getInstance().getImageLoader();我尝试过转换我的mImageLoader对象
((ImageLoader.ImageCache) mImageLoader).flushLruCache();但这会抛出一个错误,说我不能转换那些类型。
如何访问.flushLruCache()方法?
发布于 2015-04-14 20:09:26
如果我没有误解,您可以在您的类中保留对ImageLoader.ImageCache的引用。
private ImageLoader.ImageCache mImageCache;
private VolleySingleton(){
mRequestQueue = Volley.newRequestQueue(VolleyApplication.getAppContext());
mImageLoader = new ImageLoader(this.mRequestQueue, mImageCache = new ImageLoader.ImageCache() {
private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(10);
public void flushLruCache(){ mCache.evictAll();};
public void putBitmap(String url, Bitmap bitmap) {
mCache.put(url, bitmap);
}
public Bitmap getBitmap(String url) {
return mCache.get(url);
}
});
} 并在其中声明一个evictAllImages
public void evictAllImages() {
if (mImageCache != null) {
mImageCache.flushLruCache();
}
}https://stackoverflow.com/questions/29636110
复制相似问题