Saya mendaftarkan pendengar perubahan preferensi seperti ini (di onCreate()
aktivitas utama saya):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(
new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(
SharedPreferences prefs, String key) {
System.out.println(key);
}
});
Masalahnya adalah, pendengar tidak selalu dipanggil. Ini berfungsi untuk beberapa kali pertama preferensi diubah, dan kemudian tidak lagi dipanggil sampai saya menghapus dan menginstal ulang aplikasi. Tampaknya tidak ada jumlah memulai ulang aplikasi untuk memperbaikinya.
Saya menemukan utas milis melaporkan masalah yang sama, tetapi tidak ada yang benar-benar menjawabnya. Apa yang saya lakukan salah?