2011-09-12 6 views
0

私は、ウェブサイトからテキストをたくさん取り出して使用するプロジェクトに取り組んでいます。週に1回4枚の画像をダウンロードし、同じキャッシュに上書きします。キャッシュが完全にならないようにする方法は?

私が心配しているのは、キャッシュがビットマップデータを格納するファイルがいっぱいになることです。当初、約1.45MBのキャッシュを占有し、イメージが取り込まれるほど多くのデータをキャッシュし続けます。

新しい画像がダウンロードされるたびに古い画像が消去されるようにするにはどうすればよいですか?

また、アプリケーションのキャッシュのクリーンアップについて心配する必要はありませんか?ドキュメントから

答えて

1

getCacheDir() 

は、ファイルシステム上のアプリケーション固有のキャッシュディレクトリへの絶対パスを返します。これらのファイルは、デバイスのストレージが不足すると最初に削除されるファイルになります。これらのファイルが削除されると保証されません。 注:これらのファイルを削除するシステムには依存しないでください。キャッシュファイルで消費する領域の量には、常に1MBなどの妥当な最大値を設定し、その領域を超えた場合にはそれらのファイルをプルーニングする必要があります。

それまで、それをFileHandleあなたが作成することができます消去の更新を移動ファイルの名前を変更します。 、file004が存在する場合、それを削除し、新しいファイルを作成

またはあなたが柔らかくする方法を好む場合は、あなただけはもう必要いけないファイルにdeleteOnExit()フラグを設定: は、私のようなfilecheckと考えることができます。

編集:確かに、そこには、応答のための

File cachedir = getCacheDir(); 
for (File f : cachedir.listFiles()) { 
    if(!f.getName().equals("newFiles")){ 
     f.delete(); 
    } 
} 
+0

オーケー感謝..唯一のことはis..Iだけ新しいキャッシュファイルがダウンロードされる際に、以前のキャッシュファイルを削除したい行きます。これは約4日ごとです。私はそれをアラームで発射します。では、新しいキャッシュイメージを4日ごとに取得する際に、どのようなキャッシュイメージを削除するのですか? –

+0

私の4日間のダウンロードサービスでは、まず新しいファイルをcachedirの "new"というサブディレクトリにダウンロードします。 "新しい"フォルダ以外のCachedirフォルダ内のすべてを削除するよりも、新しいフォルダから新しいファイルをcachedirに移動するよりも、それはあなたの質問ですか、私は間違ったことを理解しましたか? – Michele

+0

ええ。私はアイデアが好きです。だから私のサービスでは...私はちょうどカフェのすべてを消去し、サービスの4日目にすべての新しい画像をダウンロードすることができますか? –

関連する問題