java - 为什么此设置 Activity 的 onSharedPreferenceChanged 方法为空?

标签 java android sharedpreferences live-wallpaper

我为 Android 创建了动态壁纸。我正在尝试实现一个设置菜单,但遇到了很大的困难。基本上,除了设置菜单中的设置未被壁纸服务选取之外,一切正常。我根据本教程使用 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方法扩展 PreferenceActivitySettings Activity 为空。我现在没有代码,但这段代码非常相似,所以我的问题是为什么 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)
    {
    }
}

最佳答案

它应该是空白的。调用此方法是为了让您可以执行您可能想要执行的任何特定更改。但 Preference 的值已经改变了。只需检查您是否正确检查了首选项的值即可。

关于java - 为什么此设置 Activity 的 onSharedPreferenceChanged 方法为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950658/

相关文章:

java - 如何使用 JPQL 测试 Enum 值是否在 EnumSet 中

java - 用连续范围的短裤填充列表

android - 在genymotion中安装Google Play服务,但无法检查信息

java - 编辑文本将无法恢复

java - 如何在 Android 上访问 API 17 的联系人

java - 在 JBOSS 7 中部署 JASIG CAS 时类路径错误

android - 连结 3 : Version clash for one artifact in two different repos of one group

java - 您必须使用@NonNull 注释主键吗?

android - 使用按钮中 SharedPreferences 中的字符串开始新 Activity

java - 当首选项屏幕启动时,Android 应用程序立即崩溃