У меня есть такая же настройка в моем приложении, использующая CheckBoxPreference в моей деятельности и getSharedPreference в onCreate класса обслуживания. Установка флажка запускает сервис. Снятие отметки останавливает службу.
Слушайте и обрабатывайте предпочтения, нажмите в моей Активности:
getPreferenceManager().findPreference("prefEnable").setOnPreferenceClickListener(new OnPreferenceClickListener()
{
// not used: Intent intent = new Intent(this, MyService.class);
@Override
public boolean onPreferenceClick(Preference preference) {
CheckBoxPreference cb = (CheckBoxPreference) preference;
if (cb.isChecked()) {
Log.d(TAG, "User enabled service");
// code to start service
} else {
Log.d(TAG, "User disabled service");
// code to stop service
}
return true;
}
});
Получите мои предпочтения prefEnable в моем сервисе onCreate:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
Boolean isEnabled = preferences.getBoolean("prefEnable", false);
Возможно, в вашем onDestroy, вы можете изменить это и сказать:
if (isEnabled==false) {
*** notification code ***