如何在重新安装/更新时阻止外部存储上的数据被删除?

时间:2010-09-26 17:44:46

标签: android

我注意到我的应用程序在外部存储(即SD卡)上的数据在“adb install -r”期间被删除。虽然这对于卸载是正常的(然后安装后可选择注意它),但我不明白为什么重新安装这种情况(因此也适用于市场更新)。我本可以发誓这并非总是如此。

参考http://developer.android.com/guide/topics/data/data-storage.html#filesExternal我在Android 2.2上专门使用“访问外部存储上的文件”,但没有“保存应该共享的文件”或“保存缓存文件”。所以我在“/ sdcard / Android / data // files / somefolder / data”中编写和读取数据。我的偏好确实坚持。

@Commonsware:问题不在于getExternalFilesDir()恕我直言,因为我看到我的数据写在我期望的地方。它只是不坚持。我正在使用a.o。:

public static File getDefaultDirectory(Context context, String packageName) {
    File dir;
    if(mActivity_getExternalFilesDir!=null){//API >=8
        dir = invokeGetExternalFilesDir(context, "fortune");
    }else if(mEnvironment_getExternalStorageDirectory!=null){//API <=7
        dir = invokeGetExternalStorageDirectory();
        dir = new File(dir.getPath() + "/Android/data/" + packageName + "/files/");
    }else{
        //should never occur
        return null;
    }
    return dir;
}

1 个答案:

答案 0 :(得分:5)

IIRC,Android 2.2中存在导致这些症状的错误。我建议不要使用getExternalFilesDir()直到姜饼。