不推荐使用getPreferenceManager

时间:2013-03-29 15:22:40

标签: android

我正在为Android制作动态壁纸。我有墙纸部分工作,我正在尝试添加设置。在LiveWallpaperSettings中我有这个:

@Override
protected void onCreate(Bundle icicle)
{
    super.onCreate(icicle);
    getPreferenceManager().setSharedPreferencesName(LiveWallpaperService.SHARED_PREFS_NAME);
    addPreferencesFromResource(R.string.livewallpaper_settings);
    getPreferenceManager().getSharedPreferences()
            .registerOnSharedPreferenceChangeListener(this);
}

编译器说不推荐使用getPreferenceManager()addPreferencesFromResource()。我应该用什么呢?

这些方法来自PreferenceActivity

[编辑]:基于迄今为止的一些评论,我显然正在使用过时的方法。有人能指出使用PreferenceFragments的LiveWallpaper代码的当代示例吗?

https://github.com/falsedmitri/LiveWallpaperTest.git

1 个答案:

答案 0 :(得分:3)

来自the documentation的PreferenceActivity:

  

在HONEYCOMB之前,这个类只允许显示一组首选项;现在可以在新的PreferenceFragment类中找到此功能。如果您在旧模式下使用PreferenceActivity,则此处的文档适用于已弃用的API。

因此,您可以切换到使用片段,也可以忽略这些警告。 (了解被弃用的方法有一天会从API中消失......)


  

有人可以使用PreferenceFragments指向LiveWallpaper代码的当代示例吗?

PreferenceActivities和PreferenceFragments中使用的方法之间没有重大差异,一般来说切换到碎片是一个很大的变化。但是PreferenceFragment有一个例子,你可以看到你仍然可以使用现代形式的addPreferencesFromResource()等方法。