現在、キャッシュ内にビットマップイメージを格納しています。各ビットマップのサイズはそれぞれ3MBまでです。私はアンドロイドのマニュアルを読んだ後、私はこれを見つけた、しかしgetCacheDir()
を使用しています:セルフモニタのキャッシュディレクトリ
注:あなたがあなたのためにこれらのファイルを削除するシステムに依存しないでください。キャッシュファイルで消費する領域の量には、常に1MBなどの妥当な最大値を設定し、その領域を超えた場合にはそれらのファイルをプルーニングする必要があります。
だから私はgetExternalCacheDir()
を使用して、私のキャッシュを切り替える検討していますが、私はこのことについてabitは不確かだ:
プラットフォームは常に共有ストレージの空き容量を監視しませんので、自動的に削除されないことがありこれらのファイル。アプリは常にこの場所で使用される最大スペースを管理する必要があります。現在のところ、プラットフォームによって削除されるのは、JELLY_BEAN_MR1以降で実行され、isExternalStorageEmulated(File)がtrueを返すときだけです。
ファイルがランダムに削除されると、実際にアプリケーションの実行に影響する可能性があるので、私はキャッシュディレクトリを完全に制御したいと考えています。私はすでにキャッシュのサイズの上限を設定しているので、ある程度のスペースを超えることはありません。どうすればシステムがこのキャッシュから監視したり削除したりするのを防ぐことができますか?
おかげ
2つの質問1)getFilesDir()を使用してここに画像を保存すると、メディアフォルダとしてユーザーに表示される可能性がありますか? (私はしたくない)。 2)この資産フォルダに関する詳細を教えてください。 – memoryManagers
1)getFilesDirに格納されているファイルは、ユーザーには表示されません(rootアクセス権がない限り)。ユーザーは簡単に削除することはできません。しかし、ファイルをユーザーに見せたい場合は、getExternalStorageDir()が必要です。ユーザーに表示され、簡単に削除できます。 – Ekalips
2)アセットフォルダは、常にアプリケーションを持つファイルを格納するために使用されます。彼らはすでにapkファイルで来るでしょう。ユーザーはとにかくそれを削除することはできません。しかし、1つの欠点 - あなたは動的にファイルを配置することはできません、apkのビルドの前にのみ – Ekalips