我的应用程序中包含PreferenceActivity和Service以及其他组件。OnSharedPreferenceChangeListener在用户首次进入首选项活动时触发
当首选项发生变化时,我希望我的服务根据首选项更改进行一些工作,因此我将服务配置为OnSharedPreferenceChangeListener
。
我的问题是当用户第一次输入偏好活动时。 OnSharedPreferenceChange
事件在“preferences.xml”中为每个首选项触发一次,但没有更改首选项。
我怎样才能避免这种行为?我不希望OnSharedPreferenceChange
事件在用户第一次输入“首选项活动”时触发。
感谢
感谢您的回答。你给了我解决问题的想法。我所做的就是像你告诉我的那样创造一面旗帜。在'onSharedPreferenceChanged'方法中,我只是检查这个标志。如果这是第一次,我什么都不做。并且在PreferenceActivity的“onResume”方法中,我将该标志设置为'false',因此下次调用'onSharedPreferenceChanged'方法将执行所期望的操作。感谢这个想法。 – Eduardo
aswer是错误的,但注释是正确的:您必须在PreferenceActivity.onResume中设置标志,而不是在onSharedPreferenceChanged中。 –
这个答案是错误的,评论也没有推广一个好方法。你应该在'MainActivity.onCreate()'中设置首选项默认值,如@kakopappa的答案所示。 –