Android: Save file permanently (even after clear data / uninstall)

I would like to know if there is a way to store a small amount of data permanently.
By permanently I mean I want the data to persist even if user clears app data / uninstalls app.
I know that shared preferences and databases are deleted when user clears app data / uninstalls app.

I also know that I can save stuff on SD Card, but what if device does not have SD Card /
SD Card is unmounted?

I think that the best option would be to save the data on device internal memory, but is it possible to do that without getting the data deleted when clears app data / uninstalls app?

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

You shouldn’t do that, you shouldn’t force the users to keep data on their phones without their consent.

Anyway, application data directory will be deleted after uninstall, but NOT after an update

The only way to have persistent data is to use the SD card, but again, users won’t like to have the data on their card after the app is uninstalled

Or you can consider:

  1. Storing the data on a remote server with some kind of authentication to retrieve it
  2. Using Data Backup service

Solution 2

Environment.getDataDirectory() is at least one directory where you can save files. It’s on the internal storage (/data).

One case I use it is to define whether a service is running; I create a .lock file in there and always check whether it exists or not.

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply