在 imageLoader 的子类上调用方法
Call method on subclass of imageLoader
我试图在我的 ImageLoader 的缓存上调用 .evictAll(),我不知道如何访问该方法
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()
方法?
如果我没理解错的话,你可以在你的class
中保留对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();
}
}
我试图在我的 ImageLoader 的缓存上调用 .evictAll(),我不知道如何访问该方法
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()
方法?
如果我没理解错的话,你可以在你的class
中保留对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();
}
}