SharedPreference Изменения, не отраженные в моем сервисе обоев

Я делаю живые обои, где мне нужно изменить скорость транспортного средства при настройке сцены, и это должно отражаться обратно в сервис обоев, когда я нажимаю кнопку возврата. В своей работе с предпочтениями я сохраняю изменения предпочтений списка в общих настройках следующим образом: -

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.prefs);


    ListPreference listPreference = (ListPreference) findPreference("listPref");
    currValue = listPreference.getValue();
    Log.e("LiveWallpaperSettings", "currvalue " + currValue);

    listPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference arg0, Object arg1) {

            SharedPreferences customSharedPreference = getSharedPreferences("Speed", LiveWallpaperSettings.MODE_PRIVATE);
            SharedPreferences.Editor editor = customSharedPreference.edit();
            editor.putString("Speed",currValue);
            editor.commit();

            return true;
        }

    });

Мой сервис обоев сделан с использованием расширения livewallpaper anddengine. Если я хочу отразить изменения в моем списке предпочтений в сервисе, как мне это сделать. Это то, что я сделал, но это не таккажется, работает.

Мой prefs.xml

 

            

Мой array.xml



    Slow
    Medium
    Fast


    5
    15
    30

В моем сервисе я реализую SharedPreferences.OnSharedPreferenceChangeListener и реализую следующий метод

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {

    sharedPreferences = getSharedPreferences("Speed", MODE_PRIVATE);
    strSpeedValue = sharedPreferences.getString("Speed", "5");

    fltSpeedValue = Integer.parseInt(strSpeedValue);
    final AutoParallaxBackground autoParallaxBackground = new AutoParallaxBackground(0, 0, 0, 10);
    autoParallaxBackground.attachParallaxEntity(new ParallaxEntity(fltSpeedValue, new Sprite(0,mCamera.getHeight() - this.mParallaxLayer.getHeight(),this.mParallaxLayer, getVertexBufferObjectManager())));
    autoParallaxBackground.attachParallaxEntity(new ParallaxEntity(0f, new Sprite(CAMERA_WIDTH/2 - 30, CAMERA_HEIGHT/2,this.mAutoLayer, getVertexBufferObjectManager())));
    mMainScene.setBackground(autoParallaxBackground);
}

@Override
protected void onResume() {
    super.onResume();
    // Set up a listener whenever a key changes

    PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
}

@Override
protected void onPause() {
    super.onPause();
    // Unregister the listener whenever a key changes
    PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this);
}

Но значение, которое я изменяю в моем списке предпочтений, не изменяется в моем сервисе. Я делаю что-то неправильно?

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

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