Получить контекст в службе
Есть ли какой-либо надежный способ получить 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);