Android - 从单独进程中运行的服务读取首选项

时间:2017-07-24 13:20:17

标签: android android-service foreground-service

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

我还有一个Foreground Service使用android:process=":processName"单独进程中运行。

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

但是,当我从Android Manifest中的android:process=":processName"注册元素中删除Foreground Service属性时,它开始工作,服务能够读取从Activity写入的首选项中的值。

3 个答案:

答案 0 :(得分:2)

引用the documentation for SharedPreferences

  

注意:此类不支持跨多个进程使用。

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

答案 1 :(得分:0)

共享首选项不支持多个进程,因此您可以在同一进程中创建服务和应用程序,也可以将内容提供程序用于多个进程。

答案 2 :(得分:0)

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