我可以通过调用来创建一个新的首选项文件 context.getSharedPreferences(字符串名称,int模式), ,将一些值放在返回的首选项的编辑器中,然后进行。但是,当我不再需要时,我看不到API中的接口可以删除创建的文件。我试过了 context.deletefile(字符串名称), ,通过相同 name 上面的论点,但这是返回的 false, ,指示该文件实际上没有删除。我正在使用mode_private,如果有所不同。

浏览源 上下文的编辑器实现 据我所知,也没有透露任何线索。

有任何想法吗?这里的背景是,我允许用户保存其“当前”偏好的副本,以便他们可以还原以前保存的设置。当他们不再想要这些设置时,我想删除保存的首选项文件,以免占用空间。目前,我能做的最好的是 edit().clear().commit 在文件上,我相信它将删除大多数内容。不过,不如删除。

有帮助吗?

解决方案

我已经尝试了context.deletefile(字符串名称),从上面传递相同名称参数,但是返回false,表明该文件实际上并未删除。

那是因为该文件不在该目录中。

这里的背景是,我允许用户保存其“当前”偏好的副本,以便他们可以还原以前保存的设置。

您如何制作副本?

从支持API的角度来看,最好通过制作真实的方式为您服务 SharedPreferences 成为当前的活动设置,并在您自己的目录中进行备份并将其还原为自己的文件格式。

如果您不愿朝这个方向朝这个方向前进,则该文件将是XML文件 ../shared_prefs 目录相对于 getFilesDir(), ,因此您可以构造适当的文件对象并以这种方式删除。但是,请记住,Android可以想象可以在以后更改此位置,甚至更改存储模型,因此您将来可能会遇到兼容性问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top