Получите предпочтения в Поставщике AppWidget

Я, кажется, испытываю затруднения при чтении предпочтений из моего класса AppWidgetProvider. Мой код работает в Действии, но он не делает в AppWidgetProvider. Вот код, который я использую для чтения назад булевской переменной:

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

Однако я получаю "Метод getSharedPreferences (Строка, интервал) не определено для ошибки" виджета типа (виджет является названием моего класса AppWidgetProvider).

Заранее спасибо за любые предложения!

7
задан strange quark 30 April 2010 в 23:45
поделиться

1 ответ

getSharedPreferences () , если вы решите его использовать, доступен только в подклассах Context , например Activity или Service . AppWidgetProvider является подклассом BroadcastReceiver , который не является контекстом .

При этом, если вы собираетесь использовать систему PreferenceScreen или не уверены, что она должна быть getSharedPreferences () , я бы использовал ] PreferenceManager.getDefaultSharedPreferences () вместо этого. Это SharedPreferences , которые будет использовать PreferenceScreen / PreferenceActivity .

13
ответ дан 6 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: