我希望能在设备上使用SD卡存储应用程序文件、图像、缓存文件等,并在应用程序中使用它们。我知道可以使用Context.getFilesDir() / Context.openFileOutput方法将它们保存在内部存储中,但我不想让我的应用程序使用内部存储来保存这些数据。那么有没有办法在SD卡上创建/保存所有应用程序特定的文件目录,但仍然能够让系统知道这些文件在应用程序卸载时需要被删除呢?或者在这种情况下有什么建议?编辑:我还想支持2.1版本。谢谢。
当应用被卸载时,您的应用程序不会收到通知,因此最好使用应用程序的私有目录(从getFilesDir()获取)。该目录在应用程序被卸载时会自动删除。
请注意,如果您使用的是SDK 2.2+,则可以允许用户将整个应用程序移动到SD卡中,因此您无需担心此目录的大小。
这是一个小技巧,但对我很有效...
File myFilesDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/<package name>/files");
myFilesDir.mkdirs();
'<package name>'
替换为您的包名。