我似乎在从AppWidgetProvider类中读取首选项时遇到麻烦。我的代码可以在Activity中使用,但不能在AppWidgetProvider中使用。这是我用来读回 bool 值的代码:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean autoreplyon = settings.getBoolean("autoreplyon", false);
但是,我收到“类型小部件未定义方法getSharedPreferences(String,int)”错误(小部件是我的AppWidgetProvider类的名称)。
在此先感谢您的任何建议!
最佳答案
getSharedPreferences()
(如果您选择使用它)仅在Context
的子类上可用,例如Activity
或Service
。 AppWidgetProvider
是BroadcastReceiver
的子类,它不是Context
。
话虽如此,如果您要使用PreferenceScreen
系统,或者不确定是否必须使用getSharedPreferences()
,那么我会改用PreferenceManager.getDefaultSharedPreferences()
。这些是SharedPreferences
/PreferenceScreen
将使用的PreferenceActivity
。
关于android - 在AppWidget Provider中获取首选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2748268/