更新通用图像加载器缓存
update universal imageloader cache
我在我的应用程序中使用了通用图像加载器。它工作得很好。我的问题是我的网站 url 保持不变,而 url 处的图像发生了变化。所以每次从缓存中获取图像时 url 都不会改变。我希望它应该最初显示缓存中的图像,并在后台更新缓存并刷新 imageview 图像。
我试过了Universal Image Loader: Can I use cache but also refresh it?。
通过使用它,它刷新图像视图但最初不显示缓存中的旧图像。而是显示占位符图像。
你可以试试这样的
int REPEAT_TIME_IN_SECONDS = 60; //repeat every 60 seconds
Runnable mRunnable;
Handler mHandler = new Handler();
mRunnable = new Runnable() {
@SuppressWarnings("deprecation")
@Override
public void run() {
if (getImageLoader()!=null) {
getImageLoader().getDiscCache().clear();
getImageLoader().getMemoryCache().clear();
}
}
};
mHandler.postDelayed(mRunnable, REPEAT_TIME_IN_SECONDS * 1000);
它会每隔一分钟清除您的缓存,您的图像加载器将始终显示最新图像。
这个黑客对我有用。希望它对你有用。
我在我的应用程序中使用了通用图像加载器。它工作得很好。我的问题是我的网站 url 保持不变,而 url 处的图像发生了变化。所以每次从缓存中获取图像时 url 都不会改变。我希望它应该最初显示缓存中的图像,并在后台更新缓存并刷新 imageview 图像。
我试过了Universal Image Loader: Can I use cache but also refresh it?。
通过使用它,它刷新图像视图但最初不显示缓存中的旧图像。而是显示占位符图像。
你可以试试这样的
int REPEAT_TIME_IN_SECONDS = 60; //repeat every 60 seconds
Runnable mRunnable;
Handler mHandler = new Handler();
mRunnable = new Runnable() {
@SuppressWarnings("deprecation")
@Override
public void run() {
if (getImageLoader()!=null) {
getImageLoader().getDiscCache().clear();
getImageLoader().getMemoryCache().clear();
}
}
};
mHandler.postDelayed(mRunnable, REPEAT_TIME_IN_SECONDS * 1000);
它会每隔一分钟清除您的缓存,您的图像加载器将始终显示最新图像。 这个黑客对我有用。希望它对你有用。