Известно, что:
Когда пользователь удаляет ваше приложение, система удаляет все файлы вашего приложения из внутреннего хранилища.
То же самое происходит, когда пользователь обновляет приложение?
Почему я спрашиваю? У меня есть файл в папке
raw/
, который я перемещаю во внутреннее хранилище каждый раз при запуске моего приложения (если он еще не был перемещен):
//On Application onCreate() method:
InputStream jsonFile = ctx.getResources().openRawResource(R.raw.data);
File file = ctx.getFileStreamPath(Helper.FILE_NAME);
if(file.exists())
return; //Exit because the file is already been copied.
FileOutputStream fos = ctx.openFileOutput(Helper.FILE_NAME, Context.MODE_PRIVATE);
copyFile(fos, jsonFile); //my method to copy files.
Этот файл может быть обновлен в будущих выпусках приложения. если Система удаляет внутренние файлы при обновлении приложения, приведенный выше код будет в порядке. Однако, если это не так, мне нужно выполнить еще одну проверку , чтобы убедиться, что у пользователя установлена последняя версия. Что-то вроде этого:
if(file.exists() && fileVersion == lastVersion)