Я работаю над приложением, где у меня есть задача работать с предпочтением, так реализовано предпочтение переключателя где, если переключатель включен, мне нужно отслеживать контактную базу данных, поэтому я использовал контент-наблюдатель и когда пользователь отключился я должен отменить, что наблюдатель содержание имеют вид на код я реализоватькак отменить регистрацию содержимого в предпочтениях
MyContentObserver observer;
switchPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
boolean switched = ((SwitchPreference) preference)
.isChecked();
if(!switched){
// Toast.makeText(SettingActivity.this,"Switch is on",Toast.LENGTH_SHORT).show();
observer=new MyCOntentObserver();
getContentResolver()
.registerContentObserver(
ContactsContract.Contacts.CONTENT_URI, true,
observer);
}
else{
// Toast.makeText(SettingActivity.this,"Switch is off",Toast.LENGTH_SHORT).show();
// getContentResolver().unregisterContentObserver(observer);
//here i want a logic that to destroy instance which i created
while switch is On
}
return true;
}
});
public class MyContentObserver extends ContentObserver{
public MyCOntentObserver() {
super(null);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.e("","~~~~~~contact inserted or updated"+selfChange);
}
@Override
public boolean deliverSelfNotifications() {
return true;
}
}
Любое предложение или помощь будет высоко оценена.