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 数据库中。这适用于多个进程并且非常轻量级。
我正在使用 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 数据库中。这适用于多个进程并且非常轻量级。