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