我的應用程序中包含PreferenceActivity和Service以及其他組件。OnSharedPreferenceChangeListener在用戶首次進入首選項活動時觸發
當首選項發生變化時,我希望我的服務根據首選項更改進行一些工作,因此我將服務配置爲OnSharedPreferenceChangeListener
。
我的問題是當用戶第一次輸入偏好活動時。 OnSharedPreferenceChange
事件在「preferences.xml」中爲每個首選項觸發一次,但沒有更改首選項。
我怎樣才能避免這種行爲?我不希望OnSharedPreferenceChange
事件在用戶第一次輸入「首選項活動」時觸發。
感謝
感謝您的回答。你給了我解決問題的想法。我所做的就是像你告訴我的那樣創造一面旗幟。在'onSharedPreferenceChanged'方法中,我只是檢查這個標誌。如果這是第一次,我什麼都不做。並且在PreferenceActivity的「onResume」方法中,我將該標誌設置爲'false',因此下次調用'onSharedPreferenceChanged'方法將執行所期望的操作。感謝這個想法。 – Eduardo
aswer是錯誤的,但註釋是正確的:您必須在PreferenceActivity.onResume中設置標誌,而不是在onSharedPreferenceChanged中。 –
這個答案是錯誤的,評論也沒有推廣一個好方法。你應該在'MainActivity.onCreate()'中設置首選項默認值,如@kakopappa的答案所示。 –