Получение системных настроек Android без какого-либо контекста - PullRequest
12 голосов
/ 29 ноября 2009

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

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

Ответы [ 3 ]

7 голосов
/ 29 ноября 2009

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

0 голосов
/ 23 декабря 2009

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

Context myContext = createPackageContext("com.example", 0);
0 голосов
/ 29 ноября 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...