Проверьте, если папка и все данные уже существуют - PullRequest
0 голосов
/ 26 июня 2011

Мое приложение Android загружает данные только с первого ланча.данные составляют ~ 50 МБ с ~ 2500 файлами.
1. Является ли хорошей идеей хранить файлы, загруженные в SharedSettings?Проблема в том, что если пользователь очищает приложение данных (возможно, по ошибке), он должен все заново загрузить.Я вручную копирую предварительно упакованную базу данных в /data/data/../databases/, это хорошая идея, чтобы проверить, существует ли БД, и если нет, то загрузить все ?:

if(new File(/data/data/../databases/myDB.db).exists){//dont download}

2.Isполучить размер папки и проверить, одинаково ли это хороший способ проверить, хороши ли папка + данные?или есть лучший способ проверить, одинаковы ли две папки?
Спасибо.

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Нет, не помещайте 50 МБ данных в SharedSettings.Это упадет и умрет.Набор SharedSettings хранится в XML на диске и полностью загружается в оперативную память при открытии.Это также не помешает пользователю очистить эти данные.

Для определения того, были ли загружены данные, я бы посоветовал просто создать файл, который вы создадите после завершения загрузки, указывая, что он завершен.Пользователь не может выборочно удалять файлы.Они могут очистить ваши данные, но это также очистит файл дозорного, и вы поймете, что вам необходимо повторно загрузить его.(Также имейте в виду, что вам придется иметь дело с перезапуском загрузки, если она прерывается в середине.)

Также убедитесь, что вы правильно обрабатываете операции с файловой системой, как описано здесь: http://android -developers.blogspot.com/2010/12/saving-data-safely.html

0 голосов
/ 26 июня 2011

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

Таким образом, они не загружают 50 МБ, если им не хватает только пары файлов, которые они случайно удалили в корневом проводнике; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...