我似乎在从AppWidgetProvider类中读取首选项时遇到麻烦。我的代码可以在Activity中使用,但不能在AppWidgetProvider中使用。这是我用来读回 bool 值的代码:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean autoreplyon = settings.getBoolean("autoreplyon", false);

但是,我收到“类型小部件未定义方法getSharedPreferences(String,int)”错误(小部件是我的AppWidgetProvider类的名称)。

在此先感谢您的任何建议!

最佳答案

getSharedPreferences()(如果您选择使用它)仅在Context的子类上可用,例如ActivityServiceAppWidgetProviderBroadcastReceiver的子类,它不是Context

话虽如此,如果您要使用PreferenceScreen系统,或者不确定是否必须使用getSharedPreferences(),那么我会改用PreferenceManager.getDefaultSharedPreferences()。这些是SharedPreferences/PreferenceScreen将使用的PreferenceActivity

关于android - 在AppWidget Provider中获取首选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2748268/

10-12 03:21