0

サーバーから6つの最新の画像(サムネイル)をダウンロードし、スワイプ(経由Viewpager)で次の6つをダウンロードするアプリを作成しています。後ろにスワイプすると、前の 6 つが表示されます。それらを保存するためのベストプラクティスは何ですか? それらをsqliteデータベースに保存してセッション後に削除する必要がありますか、それともヒープに保存する必要がありますか? 現在、それらをヒープに保存しており、42 個のサムネイルがダウンロードされると、最初の 6 個が破棄されます。

4

1 に答える 1

1

場合によります。これは、ヒープメモリと速度と永続性の必要性の間のトレードオフです。

ただし、画像を永続的に保存する必要がある場合は、SQLiteデータベースではなく、アプリケーションのキャッシュディレクトリ(内部または外部)に個別のファイルとして保存してください。SQLiteは、バイナリBLOBではなく構造化データを格納するのに最適です。メタデータを関連付けている場合は、メタデータと一緒にファイルへのパスをSQLiteに保存できます。

デバイスのストレージが不足すると、キャッシュ内のファイルは自動的に削除されます。ただし、注意事項についてはドキュメントをお読みください。

ヒープにキャッシュすることを選択した場合は、の使用を検討してLruCacheください。11未満のAPIレベルのサポートライブラリで利用できます。

もちろん、最良のオプションは、両方の小さなメモリキャッシュを大きなファイルキャッシュでバックアップすることです。

于 2013-01-06T12:26:27.057 に答える