2

RMS を使用して、それぞれが一意の ID を持つ何千ものレコードを格納するアプリケーションを lwuit で作成しました。lwuit IOライブラリを使用してCodenameOneに移植できるように移植/書き換えたいのですが、いくつかの課題に遭遇しました:

  1. lwuit.io.Storage には、RMS のようにレコードを削除する方法がないようです (Storage.writeObject と readObject を使用してレコードを作成および取得できますが、再度削除することはできません)。
  2. writeObject を使用してレコードを書き込むと、レコードには名前 (文字列) が付けられますが、名前のリストを取得して、それらすべてを再度取​​得することを確認する方法はありません。RMS を使用すると、全体のリストを取得できます。
  3. lwuit.io.CacheMap を使用したいのですが、io.Storage で使用する方法を示す例やチュートリアルを見つけることができませんでした (lwuit 開発ガイドでは Cachemap についても言及されていません)。

頻繁に独立して保存および取得される可能性のある何千ものレコードがある場合に、io ライブラリで良好なパフォーマンスを達成する方法についてのヒントをいただければ幸いです (原因の CacheMap の使用を超えて ;-)

見落としがあるかもしれませんが、上記の機能がなければ、RMS から lwuit.io への移植は簡単ではないようです。

4

1 に答える 1

1

夜を過ごし、ドキュメントの代わりにコードを読み、ストレージの仕組みを誤解していることに気付きました;-)。ファイル名について話すとき、それは実際の (RMS) ファイルではなく、RMS へのエントリです。したがって、私自身の質問に答えるには: 1) deleteStorageFile(name); を使用して削除します。2) listEntries() を使用します。3) CacheMap は、Storage を使用するときに実際に自動的に使用されるため、自分でコーディングする必要はありません。これを念頭に置くと、パフォーマンスは RMS と同様になります (以前にキャッシュを使用したことがなければ、おそらくより優れています)。

于 2012-04-05T06:28:13.907 に答える