Использование внутреннего хранилища - Android - Удаление файлов кэша - PullRequest
0 голосов
/ 23 ноября 2011

Я загружаю изображения и сохраняю их во внутренней памяти.Это приводит к тому, что кэш приложения растет очень быстро.

Как предлагается здесь:

http://developer.android.com/guide/topics/data/data-storage.html

Когда устройство находится на низком уровневнутреннее хранилище, Android может удалить эти файлы кэша, чтобы восстановить пространство.Однако вы не должны полагаться на систему, чтобы очистить эти файлы для вас.Вы должны всегда поддерживать файлы кэша самостоятельно и оставаться в пределах разумного предела занимаемого пространства, например 1 МБ

Мой вопрос: что произойдет, если кэш станет слишком большим, например, теперь он составляет около 20 МБ ивсе еще растет.

Я подумал, что должен следовать указаниям и удалять их каждый раз, когда мое приложение запускается, если доступно интернет-соединение.

 String[] allFiles =  fileList();

 Log.e(TAG, "allFiles.length: " + allFiles.length);


 for(int k=0; k<allFiles.length; k++)
 {
 Log.e(TAG, "allFiles [ " +k+"]: "+allFiles[k]);

 }

Однако этот код всегда возвращает ноль файлов.Если я пытаюсь получить доступ к определенному изображению, я могу легко извлечь его из внутренней памяти.Почему этот код не может вернуть массив со всеми моими изображениями ??

Как правильно использовать внутреннюю память ..

Заранее спасибо,

Андреас

1 Ответ

0 голосов
/ 23 ноября 2011

Кто-то еще задал похожий вопрос только вчера. Вот мой ответ на этот. Однако некоторые важные ключевые моменты заключаются в том, что вы можете ограничить размер всего кэша и / или ограничить время, в течение которого вы храните файл в своем кэше, и это должно решить вашу проблему.

...