在android中用FLASH存储数据 文件可以作为缓存或文件存储在内存或SD卡中 如果数据存储为文件,则该文件将一直存在,直到 由用户显式删除 如果数据存储为缓存,如果安卓觉得有 手机没有内存,因为客房管理操作会清除内存 自动删除缓存

在android中用FLASH存储数据 文件可以作为缓存或文件存储在内存或SD卡中 如果数据存储为文件,则该文件将一直存在,直到 由用户显式删除 如果数据存储为缓存,如果安卓觉得有 手机没有内存,因为客房管理操作会清除内存 自动删除缓存,android,Android,我的问题: 所以假设我的应用程序已经将一个文件作为文件写入SD卡或内存,现在我卸载我的应用程序。该文件是否也会被删除,或者即使在删除应用程序后仍会保留在那里 {编辑} 附加问题: 当我进入设置屏幕并清除缓存时。。。。所有文件和缓存是否会自动删除该应用程序的用户创建的w.r.tgetExternalFilesDir()或getExternalCacheDir()和Environment.getExternalStoragePublicDirectory()/我使用Environment.getEx

我的问题:

所以假设我的应用程序已经将一个文件作为文件写入SD卡或内存,现在我卸载我的应用程序。该文件是否也会被删除,或者即使在删除应用程序后仍会保留在那里

{编辑} 附加问题:
当我进入设置屏幕并清除缓存时。。。。所有文件和缓存是否会自动删除该应用程序的用户创建的w.r.t
getExternalFilesDir()
getExternalCacheDir()
Environment.getExternalStoragePublicDirectory()
/

我使用
Environment.getExternalStorageDirectory().getAbsolutePath()
查找用户的外部SD并将数据文件写入为我的应用程序创建的目录。这个目录及其内容通过我的应用程序的多个测试重新安装而持久化,所以我认为以这种方式创建的文件是持久化的

根据这一点,像这样访问的内部存储并非如此:

String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
这些文件不会通过重新安装而持久存在

文件可以作为缓存或文件存储在内存或SD卡中

并具有缓存目录的选项,如果可以通过Android SDK访问,则不会

所以假设我的应用程序已经将一个文件作为文件写入SD卡或内存,现在我卸载我的应用程序。该文件是否也会被删除,或者即使在删除应用程序后仍会保留在那里

  • 内部存储:您的文件被删除

  • 外部存储:如果将文件写入根目录为
    getExternalFilesDir()
    getExternalCacheDir()
    的位置,则文件将被删除。如果您在其他地方编写了文件(例如,
    Environment.getExternalStoragePublicDirectory()
    ),则不会删除您的文件

  • 可移动存储,Android 4.4之前:可移动存储不是官方可访问的;如果您的文件在那里结束,则在卸载应用程序时不应将其删除

  • 可移动存储,Android 4.4+:好的,如果您写入支持的位置(
    getExternalFilesDirs()
    getExternalCacheDirs()
    ),如果卸载时设备中有特定的可移动存储位,您的文件将被删除


没有
getExternalStorage()
方法,并且在绝大多数Android设备上它都没有指向“用户的SD”。对不起,输入错误。查看我的代码后编辑了命令。我假设把文件放在外部SD上,但我会遵从Commonware。谢谢你提供的宝贵信息。。。如果我清楚,如果我在任何
之前的android-4.4
中添加
文件
可移动存储
,它将不会被删除。即使我使用
getExternalFilesDir()
或“getExternalCacheDir()”?@Devrath:
getExternalFilesDir()
getExternalCacheDir()
用于外部存储,但此语句仍然有效。关于“清除数据”按钮,其效果就像用户卸载并重新安装了您的应用程序。卸载应用程序时删除的任何内容都会在用户单击“清除数据”时删除。现在我清楚地了解到,外部存储是android中提供的内部存储(而不是RAM)。。。。。。。可移动存储是SD卡。。。。因此,当我在
设置
上使用
清除数据
时,
SD卡
上的数据也会被删除。。。我在读另一篇文章,所以不知道它所指的是正确的还是误导的()。看看吧@Devrath:“所以,当我使用设置上的清除数据时,SD卡上的数据也会被删除?”——请参阅我回答中的第三和第四个项目符号。卸载应用程序时删除的任何内容都将在用户单击“清除数据”时删除。