Получить контекст в службе

Есть ли какой-либо надежный способ получить Context от Service?

Я хочу зарегистрировать приемник вещания для ACTION_PHONE_STATE_CHANGED, но мне не нужно мое приложение, чтобы всегда получать эту информацию, поэтому я не помещаю его в Manifest.

Однако я не могу убить радиовещательный приемник GC, когда мне нужна эта информация, поэтому я регистрирую приемник вещания в Service.

Следовательно, мне нужно Context to вызвать registerReceiver().  Когда мне больше не понадобится ACTION_PHONE_STATE_CHANGED я unregister.

Любые советы?

Ответ 2

Сервис расширяет ContextWrapper, который расширяет контекст. Следовательно, Служба является контекстом. Используйте ключевое слово 'this' в службе.

Ответ 3

  • Сервис расширяет ContextWrapper
  • ContextWrapper расширяет контекст

Итак....

Context context = this;

(в классе обслуживания или деятельности)

Ответ 4

Так как Service является Context, контекст переменной должен быть this:

DataBaseManager dbm = Utils.getDataManager(this);   

Ответ 5

YourServiceClass.this

GPSTracker gpsTracker = new GPSTracker(TimeService.this);