Как лучше всего переписать приложение lwuit с использованием RMS для использования библиотеки lwuit.io?

Я написал приложение на lwuit, в котором я использую RMS для хранения тысяч записей, каждая из которых имеет уникальный идентификатор. Теперь я хочу портировать/переписать его, чтобы использовать библиотеку lwuit IO, чтобы сделать его переносимым на CodenameOne, но я столкнулся с некоторыми проблемами:

  1. похоже, в lwuit.io.Storage нет способа удалить запись, как в RMS (я могу создавать и извлекать их с помощью Storage.writeObject и readObject, но не избавляться от них снова)
  2. когда я пишу записи с помощью writeObject, им присваивается имя (String), но я никак не могу получить список имен, чтобы убедиться, что я снова извлекаю их все. С RMS я могу получить полный список.
  3. Я хотел бы использовать lwuit.io.CacheMap, но не смог найти пример или руководство, показывающее, как использовать его с io.Storage (в руководстве по разработке lwuit даже не упоминается Cachemap)?

Я был бы признателен за советы о том, как добиться хорошей производительности с библиотекой io, когда у меня есть тысячи записей, которые могут храниться и извлекаться часто и независимо (помимо использования CacheMap причины ;-)

Возможно, я что-то упустил, но, похоже, без вышеперечисленных возможностей портирование с RMS на lwuit.io будет непростым делом.


person user1246562    schedule 04.04.2012    source источник
comment
К вашему сведению, если документация вас каким-то образом смутила, отправьте сообщение об ошибке с предложениями по улучшению. Спасибо.   -  person Shai Almog    schedule 05.04.2012
comment
Эта ссылка также очень полезна: [stackoverflow.com/questions/11275975/ [1]: stackoverflow.com/questions/11275975/   -  person Nikhil    schedule 23.07.2012


Ответы (1)


Переночевал, прочитал код вместо документации и понял, что неправильно понял, как работает Storage ;-). Когда речь идет об именах файлов, речь идет не о реальных (RMS) файлах, а о записях в RMS. Итак, чтобы ответить на мои собственные вопросы: 1) удалить с помощью deleteStorageFile(name); 2) использовать listEntries(); 3) CacheMap на самом деле автоматически используется при использовании Storage, поэтому нет необходимости кодировать его самостоятельно. Имея это в виду, производительность будет аналогична RMS (вероятно, лучше, если вы раньше не использовали кэширование).

person user1246562    schedule 05.04.2012