Я, кажется, испытываю затруднения при чтении предпочтений из моего класса AppWidgetProvider. Мой код работает в Действии, но он не делает в AppWidgetProvider. Вот код, который я использую для чтения назад булевской переменной:
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean autoreplyon = settings.getBoolean("autoreplyon", false);
Однако я получаю "Метод getSharedPreferences (Строка, интервал) не определено для ошибки" виджета типа (виджет является названием моего класса AppWidgetProvider).
Заранее спасибо за любые предложения!
getSharedPreferences ()
, если вы решите его использовать, доступен только в подклассах Context
, например Activity
или Service
. AppWidgetProvider
является подклассом BroadcastReceiver
, который не является контекстом
.
При этом, если вы собираетесь использовать систему PreferenceScreen
или не уверены, что она должна быть getSharedPreferences ()
, я бы использовал ] PreferenceManager.getDefaultSharedPreferences ()
вместо этого. Это SharedPreferences
, которые будет использовать PreferenceScreen
/ PreferenceActivity
.