Обратите внимание, что в исходном вопросе говорилось о MainActivity, слушающей изменения настроек в PreferenceActivity. Затем он добавил «EDIT1» и изменил вопрос на прослушивание в самой PreferenceActivity. Это проще, чем первое, и кажется, что все ответы предполагают. Но что, если вы все еще хотите прежний сценарий?
Ну, это тоже будет работать, но не используйте OnResume () и OnPause () для регистрации и отмены регистрации слушателя. Это приведет к тому, что слушатель окажется неэффективным, потому что пользователь покидает MainActivity, когда использует PreferenceActivity (что имеет смысл, когда вы об этом думаете). Так что это будет работать, но тогда ваша MainActivity все равно будет прослушивать в фоновом режиме, даже если пользователь ее не использует. Вид пустой траты ресурсов не так ли? Таким образом, есть другое решение, которое, кажется, работает, просто добавьте метод в OnResume (), чтобы перечитать все настройки. Таким образом, когда пользователь заканчивает редактирование предпочтений в PreferenceActivity, MainActivity забирает их, когда пользователь возвращается к нему, и вам совсем не нужен прослушиватель .
Кто-то, пожалуйста, дайте мне знать, если они видят проблему с этим подходом.