如何使用RMS重写lwuit应用程序以使用lwuit.io库?

时间:2012-04-04 21:38:14

标签: lwuit codenameone

我在lwuit中编写了一个应用程序,我使用RMS来存储数千条记录,每条记录都有一个唯一的id。现在我想移植/重写它以使用lwuit IO库使其可移植到CodenameOne,但我遇到了一些挑战:

  1. 在lwuit.io.Storage中似乎没有办法删除RMS中的记录(我可以使用Storage.writeObject和readObject创建和检索它们,但不能再次删除它们)
  2. 当我用writeObject写记录时,它们被赋予了一个名字(String),但是我无法检索名称列表以确保我再次检索所有这些名称。使用RMS,我可以获得总列表。
  3. 我想使用lwuit.io.CacheMap,但是未能找到一个示例或教程,展示如何将它与io.Storage一起使用(lwuit开发指南甚至没有提到Cachemap)?
  4. 当我有数千条可以经常和独立存储和检索的记录时,我很欣赏如何使用io库获得良好性能的提示(除了使用CacheMap之外的原因;-)

    也许我错过了一些东西,但似乎没有上述功能,从RMS移植到lwuit.io并不简单。

1 个答案:

答案 0 :(得分:1)

花了一夜,阅读代码而不是文档,并意识到我误解了存储的工作方式;-)。当它谈论文件名时,它不是实际(RMS)文件,而是进入RMS的条目。那么,回答我自己的问题:1)使用deleteStorageFile(name)删除; 2)使用listEntries(); 3)CacheMap实际上是在使用Storage时自动使用的,因此无需自己编写代码。考虑到这一点,性能将类似于RMS(如果您之前没有使用任何缓存,可能会更好)。