2010-07-30 59 views
2

我使用getExternalFilesDir(null)方法保存到SD卡。从SD卡上保存和读取没问题。我遇到的问题是,每次我在Eclipse中编辑任何内容并重新运行应用程序时,SD卡上的数据都将被删除。我知道保存到getExternalFilesDir(null)返回的目录将允许删除当我的应用程序被卸载时那里的文件,但有没有办法关闭它只是应用程序更新?这是否仅仅是因为我是从Eclipse开始的,当应用程序从市场更新时它不会删除数据?感谢您提供给我的任何信息!Android:保存到SD卡总是删除重新安装

回答

4

This is a bug in Android 2.2。 2.2版设备将在未来几个月内发布。您可能希望延迟使用此功能,直到下一次Android操作系统更新。

+0

感谢您的回答。那么我应该在SD卡的哪个位置保存文件?是否有标准要遵循? – 2010-07-30 06:31:00

+0

@Corey Alexander:目前还没有标准,除了把东西放在一个目录中(所以你不要混淆SD卡的根目录)。 – CommonsWare 2010-07-30 06:50:59

0

如果你确实需要这些数据,你为什么不尝试重命名这个包。在这种情况下,您可能会留下应用程序的多个副本,但我认为您的数据仍然保持不变。

2

从我在别处读到的当前月标准是/ sdcard/Android中的一个子目录。 i.E .:

final java.io.File Storage = android.os.Environment.getExternalStorageDirectory(); 
final java.io.File Dir = new java.io.File (Storrage, "Android/" + getPackageName()); 
Dir.mkdirs(); 

我们只能希望这个bug很快就能修复。

+0

我认为这是保存文件的位置getExternalFilesDir(null)。所以如果我保存到你推荐的地方,我想我会间接地得到同样的错误。 – 2010-07-30 23:38:36

+1

不,getExternalFilesDir(null)为您提供:“Android/data /”+ getPackageName() 请注意“数据”部分。如果您使用该目录(“Android/data”),那么即使您没有实际使用getExternalFilesDir(null)来获取/创建目录,这些文件也会被删除。 相信我,我试了一下。 – Martin 2010-07-31 17:53:52

+0

在我的手机上,没有任何应用程序在sdcard/Android下写入任何内容。似乎没有任何一种做法:)也许确实是不明智的将某些东西置于“Android”之下,而这些东西实际上并非由Android管理。 – altumano 2011-11-03 19:17:06