在Android上存储未在更新或卸载时删除的文件

时间:2011-01-29 00:37:42

标签: android storage upgrade

我想将一些数据存储到Android设备上的文件(而不是数据库)中。目前我正在使用Context.getFileDir()作为父目录。但是,当您更新应用程序时,该目录将被删除。是否有一个我可以在Context中使用的目录,当用户更新应用程序时,该目录不会被篡改?它是否必须是SD卡,因为并非所有手机上都可以使用它?

2 个答案:

答案 0 :(得分:6)

  

但是,当您更新直接删除的应用时。

不,它没有。

  

我可以在Context中使用的目录在用户更新应用程序时不会被篡改吗?

当用户更新应用程序时,没有任何文件“被搞砸”。

当用户“卸载应用程序”时,板载闪存中的所有文件都会被“搞砸”。

  

它是否必须是SD卡,因为并非所有手机上都可以使用它?

外部存储空间在拥有Android电子市场的所有Android设备上“通常可用”。它可能在特定情况下不可用(例如,它安装在主机PC上,外部存储器是可移动的,实际上已被删除)。

答案 1 :(得分:-2)

如果你想在卸载时不要删除文件是不可能的,因为你可能知道卸载将删除所有数据。


如果您想在更新代码时保存文件,Oyu可以使用与您在getFileDir()上创建文件时使用的相同方法;只需要每次b4创建文件时检查文件是否已经存在或者不


如果文件exixts thr不需要再次创建,如果它没有被创建它。


我假设您已经完成了正确创建文件的所有内容。


只需在下面添加代码b4即可创建它。


if(f.exists()) //Where f is your file
{
    //Don't create the file, it already exists
}
else{
    //Create the file, since it didn't exist
}