Я хочу обновить удаленную службу при изменении SharedPreferences. Следующее использовалось для работы с API уровня 8 (Android 2.2).
В моей активности есть OnPreferencesChangedListener
, который вызывает удаленную службу через объект привязки службы. Интерфейс удаленной службы предлагает методы prefsChanged(void)
, которые вызываются слушателем. После этого методы интерфейса вычисляют, среди прочего, новое время, когда оповещение инициирует какое-либо действие. Это время также сохраняется в SharedPreferences
и отправляется широковещательная рассылка. Трансляция получена моей активностью, которая теперь может отображать новое время оповещения. Активность и удаленная служба получают объект SharedPreferences
через вызов статического метода GetPrefs(Context)
, который отвечает PreferenceManager.getDefaultSharedPreferences(Context)
.
С уровнем API 15 (Android 4.0.3) это перестало работать. Отладка показывает, что удаленная служба видит какую-то другую версию SharedPreferences, содержащую другие (более старые?) значения. При ведении журнала объект SharedPreferencesImpl отображает разные адреса при ведении журнала из действия и из удаленной службы. Файловая система показывает только один общий файл настроек.
Это ошибка или мой код случайно работал с API уровня 8? Любые предложения будут оценены.