美文网首页
SharePreference要点一览

SharePreference要点一览

作者: taoyyyy | 来源:发表于2020-03-27 10:07 被阅读0次
  • apply是异步执行磁盘写入,commit是在当前线程执行磁盘写入。因此不要在主线程commit。
  • 每执行一次apply会将这次磁盘写入封装成一个runnable提交给只有一个线程的线程池执行,而在ActivityThread#handleStopActivity中会等待这些runnable全部执行完。因此尽量将多次apply合成一次。
  • ContextImpl#getSharedPreferences虽然会异步读取xml文件,但是每次getString时会同步等待xml加载到内存。因此,不要在sp存储大value,会增加sp的加载时间,从而可能引起界面卡顿。
  • ContextImpl#getSharedPreferences加载完后会保存在一个静态的ArrayMap中,这意味着用sp存储大value会永久性的占用更多的内存。因此一方面是要简历避免用sp存储大value,另一方面是要注意读取频繁的key和不易变动的key尽量不要放在一个File中,影响速度。
  • 虽然sp有个跨进程的flag ,FLAG——MODE_MULTI_PROCESS,但是这玩意不靠谱,跨进程操作读写还是老老实实用contentProvider。

相关文章

网友评论

      本文标题:SharePreference要点一览

      本文链接:https://www.haomeiwen.com/subject/sonkuhtx.html