Я пытаюсь написать алгоритм для быстрого сканирования всей SD-карты.Я пытаюсь добиться чего-то такого, что соответствует QuickPic, который имеет «нормальную скорость» первоначального сканирования SD-карты, но любое последующее обновление невероятно быстро.
Я попробовал несколько вещей, и у меня есть еще несколько идей, которые я не проверял
1) Всегда сканируйте все карты SD.Я попробовал это ... это немного медленнее при первоначальном сканировании.но все последующие сканирования выполняются быстрее, но не так быстро, как QucikPic.
2) После первоначального сканирования добавьте FileObserver во все папки.Хотя это только увеличивает память приложения примерно на 1 МБ, я боюсь, что это повлияет на производительность или даже разрядит батарею, поскольку она должна работать постоянно.Кроме того, у меня есть база данных на SD-карте, и я постоянно получаю события для создаваемого / удаляемого файла журнала.Я уверен, что при работе с другими приложениями будут другие папки / файлы, для которых я получу постоянное уведомление.Не уверен, что это нормально с точки зрения производительности.
3) Использование данных из MediaStore.К сожалению, кажется, что в моем магазине HTC Desire Media не всегда актуально то, что находится на SD-карте (не знаю почему), но этого недостаточно.
3) Использование ContentObserver.Еще не пробовал, и должен проверить документацию, но у меня есть ощущение, что если в MediaStore нет изображения в его БД, то я не получу его и у ContentObserver.
Ребята, ребята?есть другие предложения?По сути, мне нужно знать обо всех файлах изображений на SD-карте.Начальное сканирование может занять немного больше времени, последующее сканирование должно быть максимально быстрым (я знаю, это зависит от количества папок / файлов на SD-карте), но QuickPic сканирует (или что-то еще) всю SD-карту примерно за 0,6-0,8 секунды,и я просто не могу сделать это так быстро.