私はモデルオブジェクトをロードするカスタムビューを持っています(Person
としましょう)。これらのオブジェクトは、Loader
によって得られたDBに格納され、前記ビューをインスタンス化するCursorAdapter
を介してListView
に挿入されます。ここまでは順調ですね。Android:SQLite、UI、キャッシング、非同期クエリ
ここで、Person
には別のモデルオブジェクトへの参照があります。Country
としましょう。 Countries
はそれ自身のテーブルにあり、私はリスト項目にそれを表すために国の名前が必要です(もちろんIDを持っています)。
私は3つのオプションを参照してください。
クエリのPersonデータをロードビュー方式(
setPerson()
?)からデータベースを。国の情報を持つ私のモデルのオブジェクトは、深いプリロード(私はちょうどアップ、申し訳ありません)深いプリインストールしたと思います。
国データを非同期に照会してからUIに戻すように要求します。
(1)の問題は、UIがブロックする可能性があることです。 (2)の問題は、メモリ内で重いデータの重複が発生することです。 (3)の問題は、流れを複雑にし、おそらく不必要になる可能性があるということです。
どうすればよいですか? (1)のパフォーマンスヒットは重要ですか?たぶん(1)、ビューからデータをクエリしますが、同じCountry
のデータベースを繰り返し打つことを避けるためにキャッシュを実装しますか?おそらく(2)、オブジェクトのインスタンスが一意であることを保証するための前記キャッシュ層を備えているか?私が考慮していない第4の選択肢? ORMは何をしていますか?
ありがとうございます!
それは私の問題を解決しません= /それはオプション2です。 – slezica