Общие настройки по умолчанию дают мне неверные значения в Сервисе

У меня есть PreferenceFragment, где я определил CheckBoxPreference в XML. Мне нужно проверить это значение в Сервисе, но оно всегда дает мне старое значение. Я заметил, что значение правильно изменяется при перезапуске приложения.

Мой фрагмент предпочтений:

public class OptionsFragment extends PreferenceFragment 
{

    public static final String WIFI_ONLY = "wifi";

    private SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MyApplication.getInstance());

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.config);
    }

 }

Мой config.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <CheckBoxPreference
        android:defaultValue="true"
        android:key="wifi"
        android:summary="Check if you want to use wifi only"
        android:title="Use Wifi only" />

</PreferenceScreen>

Мой сервис:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(MyApplication.getInstance());        
Log.d(TAG, "isWifiOnly : "+settings.getBoolean(OptionsFragment.WIFI_ONLY, true));

Журнал всегда возвращает одно и то же значение, независимо от того, изменяю я его или нет, кроме случаев, когда я перезагружаю приложение. Кроме того, в моей MainActivity у меня есть эта строка в OnCreate ():

PreferenceManager.setDefaultValues(getApplicationContext(), R.xml.config, false);

При необходимости он создает файл конфигурации со значением по умолчанию.

Я что-то не так делаю, вопрос в чем?

Ответы на вопрос(2)

Ваш ответ на вопрос