文章目录
1、SharedPreference
是否是线程安全的,是否是进程安全的?
SharedPreference
是线程安全的,不是进程安全的
2、为什么SharedPreference
不适合存储大量数据?
因为SharedPreference
是一次性将所有数据都加载到内存中的
3. SharedPreference
中apply
与commit
的区别?
apply |
commit |
|
---|---|---|
工作方式 | 先将修改数据提交到内存中,之后再由线程池异步将内存数据写入到磁盘中 | 先将修改数据提交到内存中,然后直接将内存中的数据写入到磁盘 |
并发场景 | 后面调用apply 的函数时,会直接覆盖前面的内存数据 |
commit 会等待正在处理的commit 保存到磁盘后再操作 |
总结:SharedPreference 提交数据时,尽量使用 Editor#apply() ,而非Editor#commit() 。一般来讲,仅当需要确定提 |