2010-07-30 2 views
2

Я использую метод getExternalFilesDir (null) для сохранения на SD-карту. Сохранение и чтение с SD-карты в порядке. Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я редактирую что-либо в Eclipse и повторно запускаю приложение, данные на SD-карте удаляются. Я знаю, что сохранение в каталоге, возвращенном getExternalFilesDir (null), позволит удалять файлы, когда мое приложение будет удалено, но есть ли способ отключить его только для обновления приложения? Является ли это единственной причиной, по которой я делаю это из Eclipse, и она не будет удалять данные при обновлении приложения с рынка? Спасибо за любую информацию, которую вы можете мне дать!Android: Сохранение на SD-карте всегда удаляется при повторной установке

ответ

4

This is a bug in Android 2.2. Патчи будут доступны в течение следующих нескольких месяцев для 2.2 устройств. Вы можете отключить эту функцию до следующего обновления ОС Android.

+0

Спасибо за ответ. Итак, где на SD-карте следует сохранять файлы? Существует ли стандарт? –

+0

@Corey Alexander: нет текущего стандарта, кроме помещения материала в каталог (чтобы вы не загромождали корень SD-карты). – CommonsWare

0

Если вам требуются данные, почему бы вам не попробовать переименовать пакет. В этом случае у вас может быть несколько копий приложения, но я думаю, что ваши данные все еще остаются нетронутыми.

2

Считаю, что в настоящее время текущий стандарт месяца является подкаталогом в/sdcard/Android. i.E .:

final java.io.File Storage = android.os.Environment.getExternalStorageDirectory(); 
final java.io.File Dir = new java.io.File (Storrage, "Android/" + getPackageName()); 
Dir.mkdirs(); 

Мы можем только надеяться, что ошибка будет исправлена ​​очень скоро.

+0

Я думаю, что это где файл сохраняется getExternalFilesDir (null). Поэтому, если я сохраню место, которое вы рекомендуете, я думаю, что я получаю такую ​​же ошибку просто косвенно. –

+1

Нет, getExternalFilesDir (null) дает вам: «Android/data /» + getPackageName() Обратите внимание на раздел «данные». если вы используете этот каталог («Android/data»), тогда файлы будут удалены, даже если вы не использовали getExternalFilesDir (null) для получения/создания каталога. Поверьте мне, я попробовал все. – Martin

+0

На моем телефоне никаких приложений не было написано под SDCard/Android. Кажется, это не какая-то практика :) И, может быть, действительно не разумно ставить что-то под Android, которое на самом деле не управляется Android. – altumano

Смежные вопросы