[英]How to listen for a preference change in a fragment?
很多類似的問題,但我仍然找不到答案。 所以我有一個片段,我想聽取PreferenceActivity
變化。
文檔說在onResume()
注冊監聽器並在onPause()
取消注冊:
為了在活動中進行適當的生命周期管理,我們建議您分別在onResume()和onPause()回調期間注冊和注銷SharedPreferences.OnSharedPreferenceChangeListener:
我假設它們指的是在PreferenceActivity
onResume/onPause
方法中注冊監聽器,因為如果你在Fragment的onPause()
取消注冊監聽器,那么它將不會監聽這些更改。
那么相反的解決方案是 - 在onPause()
注冊並在onResume()
取消注冊?
謝謝!
PreferenceActivity不是通知首選項的更改,而是它自己的SharedPreferences 。 PreferenceActivity是用於訪問SharedPreferences的meare用戶界面。
因此,如果您的片段需要監聽SharedPreferences更改,則應該注冊更改。 換句話說,讓你的片段實現OnSharedPreferenceChangeListener並在片段onResume
上注冊這些更改,並按照文檔說明取消注冊onPause
。
您還需要在片段onResume
上加載首選項,這樣當它繼續onPause
然后onResume
時,將加載首選項的當前狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.