Подтвердить что ты не робот

Получение настроек системы Android без какого-либо контекста

В служебном классе Android я хочу получить системное предпочтение в классе, но у меня нет контекста, потому что класс, который его вызывает, также не имеет контекста. Я обнаружил, что для ресурсов можно использовать статическую функцию Resources.getSystem(). Есть ли аналогичный способ получения системных настроек без контекста?

Мой класс не является ни активным, ни сервисным. Это класс полезности. При необходимости может предоставить дополнительную информацию.

4b9b3361

Ответ 1

Вам нужно отправить Контекст - не пытайтесь убежать от своих обязанностей.:) Ваш класс утилит должен быть вызван действием или службой на каком-то уровне, и вы пройдете этот Контекст на всем протяжении линии, через каждый вызов метода. Я знаю, что это раздражает, мне пришлось делать подобные вещи сами. Подумайте, что это стимул, чтобы ваш код был прост и требовал как можно меньше вызовов методов, чтобы получить что-то.

Ответ 2

Я использую следующий Hack: http://www.hasemanonmobile.com/2009/10/05/quick-and-very-dirty-android-development-trick/

По сути, вы сбрасываете указатель контекста как статическую переменную внутри своей деятельности. Я бы рекомендовал этот уродливый взломать, если вы в сжатые сроки.

Кроме того, если вы пишете класс утилиты, вам, вероятно, потребуется (как и многие утилиты Android), чтобы вызывающее приложение предоставило вам контекст как часть вашего конструктора.

Ответ 3

Вы можете создать контекст:

Context myContext = createPackageContext("com.example", 0);