已知:
当用户卸载您的应用时,系统会从内部存储中删除您应用的所有文件。
如果用户更新应用程序是否会发生同样的情况?
为什么我要问这个问题? 我有一个文件在
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)