0

在Editor is 给出一行您在编辑器中所做的所有更改都是批处理的,并且在您调用 commit() 或 apply() 之前不会复制回原始 SharedPreferences

如果以 commit() 和 apply() 的形式给出,哪个是最好的函数?

4

3 回答 3

4

apply()将立即更新共享首选项的内存缓存,然后在后台线程中将更改写入文件系统。

commit()将同步写入更改从 UI 线程来自调用线程,这很可能是 UI 线程。从 UI 线程执行文件系统访问通常不是一个好主意,因为存在阻塞问题的风险。

于 2012-04-18T06:58:31.427 回答
1

如果它是多线程的并且由多个线程编写,那么commit()它是同步的方式..或者apply()是异步的,所以更快并且应用永远不会通知它是否无法写入.....更多信息请参见此处..

于 2012-04-18T06:56:18.560 回答
0

Commit() 返回布尔值,告诉它是否成功, apply() 没有。

于 2012-04-18T06:57:34.723 回答