2013-04-09 2 views
1

В моем приложении он сохраняет данные, например, когда что-то щелкает по нему, подсчитывает, сколько раз оно было нажато, но когда вы удаляете приложение, оно удаляет данные!Сохранение данных приложения?

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

Как мне это сделать?

ответ

3

Возможно, вы можете хранить свои данные в «облаке» от Google. Каждый раз, когда пользователь меняет значение, вы можете вызвать «Агент резервного копирования», чтобы хранить все, что вам нужно на серверах Google. Таким образом, если пользователи удаляют приложение и устанавливают его снова, ваши «агенты резервного копирования» снова будут вызываться с данными, хранящимися в облаке, и восстанавливать нужные значения. Чтобы это было так, ваше приложение должно быть одинаковым и подписано с тем же ключом. Различные ключи (например, кнопки отпуска и отладки) - это разные приложения при использовании этой службы.

Более подробная информации о резервной службе в http://developer.android.com/guide/topics/data/backup.html и примерах кода на http://developer.android.com/training/cloudsync/backupapi.html

Вам просто нужно изменить свой AndroidManifest android:backupAgent и класс, реализующий интерфейс BackupAgent с onBackup и onRestore методами.

0

Сохраните данные на SD-карте, чтобы предотвратить удаление данных при удалении. Или сохраните его на удаленном сервере.

+0

Что делать с вкладкой настроек, где пользователь может сохранять данные и загружать их из файла? – James

+0

Не важно, как вы это делаете. Важно сохранить его в нужном месте. и SD-карта или удаленный сервер. –

3

При удалении приложения все данные приложения будут удалены (внешний, внутренний, общий префикс). ЕСЛИ вы используете внешнее хранилище, связанное с вашим приложением.

Например, путь к внешней памяти будет:

(API 8+): getExternalFilesDir()

(API 7): getExternalStorageDirectory()

Если вы хотите сохранять данные вы можете написать в разделяемом внешней

(API 8+): getExternalStoragePublicDirectory()

(API 7): getExternalSt orageDirectory()

Музыка/ - Медиа-сканер классифицирует все носители, найденные здесь как музыку пользователя.

Подкасты/ - Медиа-сканер классифицирует все носители, найденные здесь как подкасты.

Рингтоны/ - Медиа-сканер классифицирует все носители, найденные здесь как мелодию звонка.

Сигнализация/ - Медиа-сканер классифицирует все носители, найденные здесь как звуковой сигнал.

Уведомления/ - Медиа-сканер классифицирует все носители, найденные здесь как звуковые уведомления.

Фотографии/ - Все фотографии (кроме фотографий, снятых камерой).

Кинофильмы/ - Все фильмы (кроме снятых с видеокамерой).

Загрузить/ - Прочие загрузки.

Разъяснения в Developers

Как я помню, общий путь не стираются после приложения удаления, но плохо то, что другие приложения могут иметь доступ к нему.

BTW, внешний пример, вы можете использовать внутреннее хранилище, так как не все телефоны будут иметь SD-карты.

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