卸载android app后保留文件

时间:2012-03-15 19:42:36

标签: android file-io installation storage

我想使用文件来存储购买的数据。由于该应用程序将是免费的,并且在安装时会给出一定数量的学分。 现在发生的是,如果我卸载安装,也会删除SD卡上的文件。因此,重新安装后,您可以再次获得免费积分。

我使用以下代码:

File file = new File(mContext.getExternalFilesDir(null), FILENAME);

                try {

                    FileOutputStream os = new FileOutputStream(file); 
                    DataOutputStream out = new DataOutputStream(os);


                    out.writeInt(5); //5 CREDITS TO START
                    out.close();

                    if(CreditFileExists()) {
                        Log.w("ExternalStorageFileCreation", "First Time so give 5 credits");
                    } else {
                        Log.e("ExternalStorageFileCreation", "Error in creating CreditFile");
                        Toast.makeText(mContext, R.string.sdnotavailable, Toast.LENGTH_SHORT).show();
                    }

                } catch (IOException e) {
                    // Unable to create file, likely because external storage is
                    // not currently mounted.
                    Log.e("ExternalStorage", "Error writing " + file, e);
                    Toast.makeText(mContext, R.string.sdnotavailable, Toast.LENGTH_SHORT).show();
                }

所以这个文件保存在这个目录下的getExternalFilesDir(null)中,显然卸载时清理了该目录,有人提出这方面的任何提示吗?

谢谢!

1 个答案:

答案 0 :(得分:7)

您可以将文件放在从Environment.getExternalStorageDirectory()派生的目录中。卸载后这些文件将保留。但是,无论您的应用是否已安装,用户都可以随时删除这些文件。

除此之外,设备上没有可以放置将在卸载后继续使用的文件的地方。