2010-07-30 30 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