Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SharedReferences.Editor应用()失败_Java_Android_Sharedpreferences - Fatal编程技术网

Java SharedReferences.Editor应用()失败

Java SharedReferences.Editor应用()失败,java,android,sharedpreferences,Java,Android,Sharedpreferences,正如医生所说 与commit()不同,apply()会将其首选项同步写入持久性存储,而apply()会立即将其更改提交到内存中的SharedReferences,但会启动对磁盘的异步提交,并且不会收到任何失败的通知 这是否意味着,如果出现某些故障(例如,可用空间不足),我的SharedReference将恢复到以前的状态,并且不会创建任何异常?我的应用程序会崩溃吗?如图所示,在将更改写入文件之前,SharedReferences会首先尝试创建备份文件 如果成功: 尝试写入文件、删除备份并尽可能以

正如医生所说

与commit()不同,apply()会将其首选项同步写入持久性存储,而apply()会立即将其更改提交到内存中的SharedReferences,但会启动对磁盘的异步提交,并且不会收到任何失败的通知

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

如图所示,在将更改写入文件之前,SharedReferences会首先尝试创建备份文件

如果成功:

尝试写入文件、删除备份并尽可能以原子方式返回true。如果出现异常,删除新文件;下次我们将从备份中恢复

因此,不会抛出任何异常,SharedReferences将返回到以前的状态(因为它在将更改写入磁盘之前进行了备份)。(尽管您不会收到任何故障通知)