缓存相关问题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");
}