20

システムのメモリが少なくなると、AndroidはCacheDir内のファイルを自動削除する場合があります。しかし、ドキュメントには、このキャッシュをクリアするシステムに依存するべきではないと書かれているため、ポーリングと削除のための追加のコードを記述します。

この場合、なぜ選択する必要がありますgetCacheDir()getFilesDir()?どちらもメモリ内にあり、後者は、何をいつクリーンアップするかという点で、開発者により多くの力を提供します。

ありがとう!

4

2 に答える 2

48

システムのメモリが少なくなると、Android は CacheDir 内のファイルを自動削除する場合があります。

正しい。サードパーティのアプリは、アプリのキャッシュ ディレクトリからファイルを削除することもできます。また、zapl が指摘しているように、ユーザーは [設定] からアプリのキャッシュを手動でクリアできます。

しかし、ドキュメントによると、このキャッシュをクリアするシステムに依存するべきではないため、ポーリングと削除のための追加のコードを記述します。

また、正しい。

この場合、なぜ getFileDir() よりも getCacheDir() を選択する必要があるのでしょうか?

OS、サードパーティのアプリ、およびユーザーがキャッシュをクリアできるためです。ただし、それらがキャッシュをクリアできるからといって、それらが自動的にキャッシュクリアするとは限らないため、時々自分でキャッシュを整理する必要があります。同様に、あなたの母親はあなたの部屋を掃除することができますが、ほうきで殴られたくない場合は、自分で部屋を掃除することをお勧めします.

後者は、何をいつクリーンアップするかという点で、開発者により多くの力を提供します...

いいえ、違います。getCacheDir()オブジェクトを返しFileます。getFilesDir()オブジェクトを返しFileます。それらは、「何をいつクリーンアップするかという点で開発者に与える力」という点で同等です。

于 2012-12-05T23:49:46.667 に答える
3

getCacheDir()キャッシュ ファイルへのパスをgetFilesDir()返しますが、アプリの内部ストレージに作成および保存されたファイルへのパスを返します。内部ストレージは永続的です。システムから削除することはできません。

于 2012-12-05T19:54:53.327 に答える