剖析 SharedPreference apply 引起的 ANR 问题 https://mp.weixin.qq.com/s?__biz=MzI1MzYzMjE0MQ==&mid=2247484387&idx=1&sn=e3c8d6ef52520c51b5e07306d9750e70&scene=21#wechat_redirect
SharedPreferences性能问题 https://bytedance.feishu.cn/docs/doccnqs6lpMphwYg0R6cOZaW7Cc#
SharedPreferences ANR 总结 https://zhuanlan.zhihu.com/p/152623807
获取 SharedPreferences 总结:
- 获取 SP 的过程是通过 synchronized 关键字保证多线程安全的。
- 通过 Map 进行缓存 Sp 实例,因此多次调用 getSharedPreferences 几乎没有性能上的差别。 <

博客探讨了SharedPreferences在Android中的性能问题,特别是在主线程中使用getXXX可能导致ANR。apply方法虽在子线程中写入磁盘,但在特定情况下仍能引起主线程ANR。commit方法虽然在主线程执行,但可通过工作线程避免ANR。文章建议考虑使用Jetpack DataStore以解决SharedPreferences的这些问题,DataStore提供事务处理和更好的错误反馈。
最低0.47元/天 解锁文章
1793

被折叠的 条评论
为什么被折叠?



