Как зарегистрировать мой BroadcastReciever для прослушивания изменений в моих настройках?
Если в манифесте зарегистрировано BroadcastReceiver
, изменения в ваших настройках не прослушиваются.потому что BroadcastReceiver
будет только в течение миллисекунд.Просто прочитайте последние значения в течение onReceive()
.
Если BroadcastReceiver
зарегистрирован другим компонентом, вызывающим registerReceiver()
, этот компонент может зарегистрировать OnSharedPreferenceChangeListener
с SharedPreferences
, полученным через PreferenceManager
и getDefaultSharedPreferences()
.
Похоже, что контекст широковещательного приемника не совпадает с действием, поэтому я не регистрируюсь по праву SharedPreferences, потому что я не перехватываю эти изменения.
Это предложение не имеет смысла.
Как мне действовать в моем PreferenceActivity при изменении настроек?
Зарегистрировать OnSharedPreferenceChangeListener
с SharedPreferences
, полученным через PreferenceManager
и getDefaultSharedPreferences()
.
Как изменить пользовательский интерфейс PreferenceActivity в соответствии с изменениями в предпочтениях?
Как правило, вы не делаете.Вы можете зарегистрировать OnSharedPreferenceChangeListener
с SharedPreferences
, полученным через PreferenceManager
и getDefaultSharedPreferences()
.Оттуда вы можете получить Preference
из вашего PreferenceActivity
через findPreference()
и настроить его в соответствии с требованиями.
Как включить или отключить некоторые предпочтения, которые зависят от другого предпочтения (например, CheckBoxPreference)?таким образом, пользователь может редактировать эти настройки, только если он сначала включил эту функцию.
При необходимости добавьте android:dependency
в XML-файл настроек.