Я хочу обновить удаленный сервис при изменении 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 по совпадению?Любые предложения будут оценены.