В android есть ли способ сохранить SharedPreferences после удаления

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

есть ли способ заставить это остаться, чтобы, если пользователь удалит и переустановит, они могли восстановить свои старые данные?

7 ответов


вы должны добавить BackupAgentHelper в ваше приложение. Вместе с SharedPreferenceBackupHelper, он создает резервные копии SharedPreferences облака (если устройство поддерживает его). При переустановке приложения данные восстанавливаются.

посмотреть:

BackupAgentHelper

SharedPreferenceHelper (содержит весь код, необходимый для его реализации)

общее руководство по резервному копированию


начиная с Android 6.0 можно было использовать:

<application
        android:allowBackup="true">

установив значение true, ваши данные (sharedprefs и другие) будут сохранены в Google cloud и восстановлены при следующей установке приложения. Вы можете прочитать больше об этом здесь. Следует отметить, что по умолчанию настройки правда начиная с 6.0.


уверен SharedPreferences всегда удаляется вместе с приложением. На мой взгляд, лучший способ сделать это-написать скрытый файл (что-то вроде ".nameOfFile") на SD-карту или внутреннюю память и также содержат настройки.

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

Это только один способ сделать это, и это может быть не самым эффективным, но я надеюсь, что это поможет!


один из способов сделать это-сохранить пользовательские данные на сервере. Затем, когда пользователь повторно устанавливает приложение или устанавливает приложение на другое устройство, они могут "синхронизировать" свои пользовательские данные. Это будет просто небольшая HTTP-загрузка данных, вероятно, сохраненных в JSON, которые вы затем проанализируете и запишете в SharedPreferences.

Если вы не хотите поддерживать свой собственный сервер, вы можете использовать облачный сервис, как Dropbox. Это как приложение Reader приложение 1Password работает.


Как сказал edthethird: лучше всего положить физические файлы на внешнее хранилище устройства и прочитать их при установке. Если содержимое файла должно быть скрыто от пользователей, просто выполните простой процесс шифрования / дешифрования.


sharedPrefs и DBs удаляются при удалении. Вам придется писать вне приложения (например, sd).


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

http://developer.android.com/guide/topics/data/backup.html