我的共享偏好定义如下:
sharedPreferences = context.getSharedPreferences(Consts.SHARED_PREFS_NAME, Context.MODE_MULTI_PROCESS);
我的接收者是在不同的进程中定义的:
<receiver android:name="com.my.name" android:enabled="true" android:process=":myProcessName" />
使用的流程不同,上下文也不同。 问题是,在应用程序进程和我的 broadcastreceiver 进程中使用相同的 bool 首选项会返回意外值,就好像读取和写入不在同一个共享 bool 首选项上一样。
有什么想法吗?
最佳答案
我写了一个库来解决这个问题:https://github.com/grandcentrix/tray
它使用内部 ContentProvider 来存储数据,并且是 SharedPreferences 的完全替代品,但具有多进程支持。
关于android - 多进程共享首选项在多进程环境中返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19705818/