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


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

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

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

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

какие-либо советы?

4 231

4 ответа:

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

  1. сервис расширяет ContextWrapper
  2. ContextWrapper расширяет контекст

так....

Context context = this;

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

С Service это Context, переменный контекст должен быть this:

DataBaseManager dbm = Utils.getDataManager(this);