SharedPreferences.Editor apply()失败

时间:2019-06-04 16:10:29

标签: java android sharedpreferences

如文档所述,

  

不同于commit()将其首选项同步写到持久性存储中,apply()立即将其更改提交到内存中的SharedPreferences,但是启动对磁盘的异步提交,并且不会收到任何故障通知。 / p>

这是否意味着,如果发生某些故障(例如,可用空间不足),我的SharedPreferences只会恢复到以前的状态,并且不会创建任何异常?我的应用程序会崩溃吗?

1 个答案:

答案 0 :(得分:1)

如此处here所示,在将更改写入文件之前,SharedPreferences首先尝试创建备份文件

如果成功:

  

尝试写入文件,删除备份,并尽可能自动地返回true。如果发生任何异常,请删除新文件;下次我们将从备份中还原。

因此,将不会引发任何异常,并且SharedPreferences将返回到先前的状态(因为它会在将更改写入磁盘之前进行备份)。 (尽管不会通知您任何失败)。