Android - 从单独进程中 运行 的服务读取偏好

Android - Read preference from service which is running in separate process

我正在使用 Activity(默认进程)中的 PreferenceManager.getDefaultSharedPreferences(Context context) 为默认共享首选项写入一些值。

我还有一个 Foreground Service,它是 运行 在 单独的过程 中使用 android:process=":processName"

现在的问题是,当我尝试从 Foreground Service 读取偏好值时,它无法读取从 Activity.

写入的值

但是当我从 Android 清单中的 Foreground Service 注册元素中删除 android:process=":processName" 属性时,它开始工作,服务能够读取从Activity.

引用 the documentation for SharedPreferences:

Note: This class does not support use across multiple processes.

在两个进程之间创建某种 API 并以这种方式进行通信。

共享首选项不支持多进程,因此您可以在同一进程中制作服务和应用程序,也可以为多进程使用内容提供程序。

将信息存储在SQLite 数据库中。这适用于多个进程并且非常轻量级。