1

私は、Blackberry の開発と Blackberry の SQLite 全般に問題がありました。

デバイスにデータを保存するための代替案を考えています。

まず、デバイスに保存されるデータは、99% の確率で Web サービス呼び出しから取得されます。Web サービスの応答は、0.5kb 未満から 10kb、場合によっては 20kb までの範囲になります。

私が抱えている問題の多くは、スレッドを使用して Web サービス呼び出しを非同期にしているという事実に関係しており、データベース接続間で多くの競合が発生しています。ドキュメントにも載っていない にも問題がありました。DatabaseOutOfMemoryException

Web サービスの応答を生の XML (デバイス上の xml または txt ファイルとして) に保存し、UI に何かをロードするたびにそこから読み取るだけでよいのでしょうか?? 現在、生の XML を文字列で取得して解析し (DocumentBuilder などを使用して)、その内容を SQLite のさまざまなテーブルに格納しています。

SQLite を廃止し、XML のみを使用した方が速いでしょうか?? もっと簡単でしょう??開いているファイルへの読み取り/書き込みアクセスに競合はありますか? 私のアプリでは多くの読み取り/書き込みが行われているため、できるだけ簡単に管理できるようにしたいと考えています。

どんなアイデアも素晴らしいでしょう、ありがとう!!

4

1 に答える 1

3

SqLite の代わりに永続ストアを使用できます。永続ストアの大きな利点の 1 つは、いつでも利用できることです。デバイスが USB 接続されている間、SD カードが失われたり、ファイルシステムがマウントされたりする心配はありません。「大きい」とは、これがサポートの観点から絶対に大きいことを意味します。BlackBerry で SqLite データベースを使用できる場合のすべてのエッジ ケースを説明するのは非常に面倒です

永続ストアの最大の欠点は、オブジェクトごとに 64kb の制限があることです。すべての XML フラグメントがそれを超えないことがわかっている場合は、問題ありません。ただし、 64kb を超える可能性がある場合は、大きなストリームをそれぞれ 64kb 未満のコンポーネントに意図的にフラグメント化する持続可能オブジェクトを考え出す必要があります。

于 2012-09-12T03:58:00.303 に答える