外观
如何在多进程环境中安全地共享 SharedPreferences 数据?
标准回答
不要靠 MODE_MULTI_PROCESS 把 SharedPreferences 当作跨进程一致存储。可由一个进程通过 ContentProvider 或 Binder 统一读写,或采用明确支持多进程的存储方案;已选用 DataStore 时应核对对应的 MultiProcessDataStore 配置与限制。
通俗例子
主进程改了登录状态,下载进程未必立刻看到。可让一个进程负责保存,通过 Binder 或 Provider 统一读写。
深入解释
**不同进程为什么会不一致:**每个进程有自己的内存与缓存,一端修改文件,不代表另一端内存中的旧值会立即失效。并发写入还可能互相覆盖。
**应该怎么协调:**让一个明确的服务或 Provider 负责读取和修改,其他进程通过 IPC 访问;或选用明确支持多进程且按要求配置的方案,不能只给普通配置文件加个模式标志。
内容来源
- Android · AI Agent 知识手册 · 原条目
5.1.3