SharedPreferences存储apply()和commi
作者:
卡路fly | 来源:发表于
2020-04-03 15:21 被阅读0次
- commit()方法和apply()方法的区别:commit()方法是同步的有返回结果,同步保证使用Countdownlatch,即使同步但不保证往磁盘的写入是发生在当前线程的。apply()方法是异步的具体发生在QueuedWork中,里面维护了一个单线程去执行磁盘写入操作。
- commit()和apply()方法其实都是Block主线程。commit()只要在主线程调用就会堵塞主线程;apply()方法磁盘写入操作虽然是异步的,但是当组件(Activity Service BroadCastReceiver)这些系统组件特定状态转换的时候,会把QueuedWork中未完成的那些磁盘写入操作放在主线程执行,且如果比较耗时会产生ANR。
- 跨进程操作,需要借助Android平台常规的IPC手段(如,AIDL ContentProvider等)来完成。
来源:SharedPreferences原理
本文标题:SharedPreferences存储apply()和commi
本文链接:https://www.haomeiwen.com/subject/rknhphtx.html
网友评论