In android is there any way to preserve SharedPreferences after an uninstall

后端 未结 8 1022
一生所求
一生所求 2020-12-01 07:54

I am keeping some application meta data in SharedPreferences. Whenever I uninstall the application and reinstall it, the SharedPreferences are dele

相关标签:
8条回答
  • 2020-12-01 08:34

    At the age of 2020, it seems to me that Shared Storage is the way to go.

    Android data and file Storage overview

    https://developer.android.com/training/data-storage

    Shared storage of documents and files

    https://developer.android.com/training/data-storage/shared/documents-files

    0 讨论(0)
  • 2020-12-01 08:39

    One way to do this would be to store the user data on a server. Then when the user re-installs the app or installs the app on another device, they can "sync" their user data. That would just be a small HTTP download of the data, likely stored in JSON, which you would then parse and write into the SharedPreferences.

    If you don't want to maintain your own server, you could use a cloud service like Dropbox. This is how the app 1Password Reader works.

    0 讨论(0)
  • 2020-12-01 08:40

    This is actually built-in, you just need to implement a couple of classes to enable it. Data will be backed up and linked to the user's Google account, so it will be automatically restored if they install the app on a new device, re-install, etc.

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

    0 讨论(0)
  • 2020-12-01 08:43

    Since Android 6.0 it has been possible to use:

    <application
            android:allowBackup="true">
    

    By setting it to true your data (sharedprefs and others) will be saved on Google cloud and restored next time the app is installed. You can read more about it here. It should be noted that the default settings is true since 6.0.

    0 讨论(0)
  • 2020-12-01 08:43

    sharedPrefs and DBs are removed when you uninstall. You would have to write outside of the app (sd for example).

    0 讨论(0)
  • 2020-12-01 08:44

    I'm pretty sure SharedPreferences is always deleted along with the app. In my opinion, the best way to do this would be to write a hidden file (something like ".nameOfFile") onto the SD Card or internal memory and have that contain the preferences as well.

    You should use SharedPreferences though, it's the Android standard for preference management. You could make it so that the first time your app loads, it checks the SDCard for a hidden file that would have been created last time they opened it. If the file exists, then read in those inputs and store them in the SharedPreferences, if it doesn't, then either the user deleted it or the user has never installed your app before.

    This is just one way to do it, and it might not be the most efficient, but I hope it helps!

    0 讨论(0)
提交回复
热议问题