Obtener contexto en un servicio

¿Hay alguna manera confiable de obtener un Context de un Service ?

Quiero registrar un receptor de difusión para ACTION_PHONE_STATE_CHANGED pero no necesito que mi aplicación siempre obtenga esta información, por lo que no la ACTION_PHONE_STATE_CHANGED en el Manifest .

Sin embargo, no puedo hacer que el receptor de difusión muera por el GC cuando necesito esta información, así que estoy registrando el receptor de difusión en un Service .

Por lo tanto, necesito un Context para llamar a registerReceiver() . Cuando ya no necesito ACTION_PHONE_STATE_CHANGED lo desregistro .

¿Algun consejo?

El servicio es un contexto

El servicio extiende ContextWrapper que extiende Context. Por lo tanto, el Servicio es un Contexto. Use la palabra clave ‘this’ en el servicio.

  1. El servicio extiende ContextWrapper
  2. ContextWrapper extiende contexto

Asi que….

 Context context = this; 

(en servicio o clase de actividad)

Como Service es un Context , el contexto variable debe ser this :

 DataBaseManager dbm = Utils.getDataManager(this);