我的应用程序从服务器下载文件并将其存储在:
/mnt/sdcard/Android/data/com.test/files
。 (/ mnt / sdcard派生自Environment.getExternalStorageDirectory();
)
每次我将应用程序从eclipse(运行菜单)重新部署到模拟器时,它都会删除该文件。
取消选中运行配置中的复选框“目标/擦除用户数据”。
我正确地关闭了所有BufferedOutputStreams
所以我不认为这是我的应用程序本身。
我是否使用正确的目录进行持久数据存储? (我的文件大约是70-100M)
任何提示?
答案 0 :(得分:1)
来自getExternalStorageDirectory's doc:
应用程序不应直接使用 这个顶级目录,以便 避免污染用户的根 命名空间。任何私有的文件 应该放在应用程序中 返回的目录 Context.getExternalFilesDir,其中 系统将负责删除if 应用程序已卸载。其他 共享文件应放在一个文件中 返回的目录 getExternalStoragePublicDirectory(字符串)。
您的/mnt/sdcard/Android/data/com.test/files
应该在Context.getExternalFilesDir()
中,并在卸载应用时被删除。