多くの画像(数十)を利用するAndroidアプリを書いています。これらの画像は、アプリ内の他のほとんどのデータと同様に、リモート データベースから更新されます。データについては、ローカル データベースを作成し、リモート データベースが更新されるたびにリモート データベースと同期します。
リモート データベースは画像を URL として保存し、アプリはこれらの URL から画像をダウンロードしてアプリに表示します。したがって、ローカル データベースをリモート データベースと同期させるだけで、使用しているすべての画像ファイルの URL を取得し、アプリを実行するたびにリモート サーバーからそれらを再ダウンロードできますが、これは明らかに遅く、多くのデータを無駄にします。
私がやりたいことは、データベースが更新されて同期が必要になるたびに、アプリはローカル データベースを同期し、通常どおり URL から新しい画像をダウンロードしますが、デバイスのどこかに画像ファイルを保存するので、次にアプリを実行すると、デバイスから画像を取得できます。
これを行う効果的な方法を見つけることができないようです。おそらく、そもそもこの方法で行うのは悪い考えだからですか? Sharepreferences にはおそらく十分なスペースがなく、外部ストレージは常に利用できるわけではありません。ローカル データベースに大量のバイナリ データ (画像など) を保存するのは悪い考えだと聞いています。
ここでのオプションは何ですか?