为什么此设置活动的onSharedPreferenceChanged方法为空?

时间:2015-10-05 14:09:02

标签: java android sharedpreferences live-wallpaper

我为Android创建了一个动态壁纸。我试图实施设置菜单,但我遇到了很多困难。基本上,一切都有效,但Wallpaper service没有提取设置菜单中的设置。我根据本教程使用SharedPreferences

http://www.codeproject.com/Articles/108390/How-To-Create-Android-Live-Wallpaper?fid=1586900&df=90&mpp=25&prof=False&sort=Position&view=Normal&spc=Relaxed&fr=51#xx0xx

我试图弄清楚为什么设置没有转移到主Wallpaper Service,我发现我的onSharedPreferencesChanged方法Settings ActivityPreferenceActivity扩展为空白。我目前没有提供我的代码,但这段代码非常相似,所以我的问题是为什么onSharedPreferenceChanged方法是空白的,应该是什么?在我看来,这是代码应该实际进行更改的地方。

以下是代码:

package ca.jvsh.livewallpaper;

import ca.jvsh.livewallpaper.R;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceActivity;

public class LiveWallpaperSettings extends PreferenceActivity
    implements SharedPreferences.OnSharedPreferenceChangeListener
{
    @Override
    protected void onCreate(Bundle icicle)
    {
        super.onCreate(icicle);
        getPreferenceManager().setSharedPreferencesName(LiveWallpaper.SHARED_PREFS_NAME);
        addPreferencesFromResource(R.xml.livewallpaper_settings);
        getPreferenceManager().getSharedPreferences()
                .registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onResume()
    {
        super.onResume();
    }

    @Override
    protected void onDestroy()
    {
        getPreferenceManager().getSharedPreferences()
                .unregisterOnSharedPreferenceChangeListener(this);
        super.onDestroy();
    }

    public void **onSharedPreferenceChanged**(SharedPreferences sharedPreferences,
            String key)
    {
    }
}

1 个答案:

答案 0 :(得分:1)

它应该是空白的。调用此方法,以便您可以执行您可能要执行的任何特定更改。但是,偏好的价值已经发生了变化。只需检查您是否正确检查首选项的值。