缓存相关问题codenameone
Cache related issues codenameone
我在缓存方面有一些问题...
1)我使用URLImage如下
URLImage.createToStorage(profileImg, photoUrl + "__c", photoUrl, URLImage.RESIZE_SCALE_TO_FILL)
但是如果图片在服务器中被编辑(旧的被新的替换),它会显示旧的img而不是更新到新的图像。我应该怎么做才能重新更新缓存的图像。
2)我们正在开发一个新闻应用程序。这里的新闻每天更新。最近十条新闻在存储中保存如下:
//write the storage object
do {
Storage.getInstance().writeObject("newsListingStorage", fetchresponses);
} while (fetchLastId < 10);
//read the storage
public Vector newsListOfflineStorage() {
Vector newsListingRead = (Vector)Storage.getInstance().readObject("newsListingStorage");
return fetchresponses;
}
我担心如果用户每天存储 10 个项目,它会在一个月或一年内存储更多,并且缓存项目会继续...我如何将每次存储的缓存替换为最近的 10 个项目,这样每次运行应用程序时只有 10 个最近缓存的项目。
我不知道 codenameone 中是否已经引入了缓存过期,但我是如何处理这个的...缓存来自您的数据库的具有唯一 ID 的图像
URLImage.createToStorage(profileImg, "largeImage_" + newsUniqueId + ".jpg", photoUrl, URLImage.RESIZE_SCALE_TO_FILL);
假设您之前存储了 10 条新闻,它们的 ID 是什么并不重要,在您的数据库中您有 100 条新闻,您只需要唯一 ID 从 91 到 100 的头条新闻。从 0 到 90 循环并从存储中删除这些图像(如果存在)。
private void deleteImageFromStorage(String imageName) {
FileSystemStorage fss = FileSystemStorage.getInstance();
fss.deleteRetry(fss.getAppHomePath() + imageName, 2);
}
for (int i = 0; i < myTop10NewsLowestId; i++) {
deleteImageFromStorage("largeImage_" + i + ".jpg");
}
我在缓存方面有一些问题...
1)我使用URLImage如下
URLImage.createToStorage(profileImg, photoUrl + "__c", photoUrl, URLImage.RESIZE_SCALE_TO_FILL)
但是如果图片在服务器中被编辑(旧的被新的替换),它会显示旧的img而不是更新到新的图像。我应该怎么做才能重新更新缓存的图像。
2)我们正在开发一个新闻应用程序。这里的新闻每天更新。最近十条新闻在存储中保存如下:
//write the storage object
do {
Storage.getInstance().writeObject("newsListingStorage", fetchresponses);
} while (fetchLastId < 10);
//read the storage
public Vector newsListOfflineStorage() {
Vector newsListingRead = (Vector)Storage.getInstance().readObject("newsListingStorage");
return fetchresponses;
}
我担心如果用户每天存储 10 个项目,它会在一个月或一年内存储更多,并且缓存项目会继续...我如何将每次存储的缓存替换为最近的 10 个项目,这样每次运行应用程序时只有 10 个最近缓存的项目。
我不知道 codenameone 中是否已经引入了缓存过期,但我是如何处理这个的...缓存来自您的数据库的具有唯一 ID 的图像
URLImage.createToStorage(profileImg, "largeImage_" + newsUniqueId + ".jpg", photoUrl, URLImage.RESIZE_SCALE_TO_FILL);
假设您之前存储了 10 条新闻,它们的 ID 是什么并不重要,在您的数据库中您有 100 条新闻,您只需要唯一 ID 从 91 到 100 的头条新闻。从 0 到 90 循环并从存储中删除这些图像(如果存在)。
private void deleteImageFromStorage(String imageName) {
FileSystemStorage fss = FileSystemStorage.getInstance();
fss.deleteRetry(fss.getAppHomePath() + imageName, 2);
}
for (int i = 0; i < myTop10NewsLowestId; i++) {
deleteImageFromStorage("largeImage_" + i + ".jpg");
}