У меня есть функция предпочтения и служба в моем приложении среди других компонентов.OnSharedPreferenceChangeListener запускается, когда пользователь вводит в действие предпочтения первый раз
Когда предпочтение изменено, я хочу, чтобы моя служба выполняла некоторую работу в зависимости от изменений предпочтений, поэтому я настроил службу как OnSharedPreferenceChangeListener
.
Моя проблема в том, что пользователь впервые вводит в действие предпочтения. Событие OnSharedPreferenceChange
запускается один раз в предпочтении в «preferences.xml», хотя предпочтения не были изменены.
Как я мог избежать такого поведения? Я не хочу, чтобы событие OnSharedPreferenceChange
было запущено при первом входе пользователя в «действие предпочтений».
Благодаря
Спасибо за ваш ответ. Вы дали мне идею решить проблему. Я сделал это, чтобы создать флаг, как вы сказали мне. В методе 'onSharedPreferenceChanged' я просто проверяю этот флаг. Если это первый раз, я ничего не делаю. И в методе «onResume» PreferenceActivity я помещаю флаг в значение «false», поэтому последующие вызовы метода onSharedPreferenceChanged будут делать то, что ожидается. Спасибо за идею. – Eduardo
Асфальт неверен, но комментарий прав: вы должны установить флаг в PreferenceActivity.onResume, а не в onSharedPreferenceChanged. –
Этот ответ неверен, и комментарий не способствует хорошему подходу. Нужно установить настройки по умолчанию в «MainActivity.onCreate()», как показано в ответе @kakopappa. –