Obtenir un contexte dans un service

Existe-t-il un moyen fiable d’obtenir un Context partir d’un Service ?

Je souhaite enregistrer un récepteur de diffusion pour ACTION_PHONE_STATE_CHANGED mais je n’ai pas besoin de mon application pour toujours obtenir cette information, donc je ne la mets pas dans le Manifest .

Cependant, je ne peux pas avoir le récepteur de diffusion tué par le CPG lorsque j’ai besoin de ces informations pour enregistrer le récepteur de diffusion dans un Service .

Par conséquent, j’ai besoin d’un Context pour appeler registerReceiver() . Lorsque je n’ai plus besoin de l’ ACTION_PHONE_STATE_CHANGED je le ACTION_PHONE_STATE_CHANGED .

Des conseils?

Le service est un contexte

Le service étend ContextWrapper qui étend le contexte. Par conséquent, le service est un contexte. Utilisez le mot-clé ‘this’ dans le service.

  1. Le service étend ContextWrapper
  2. ContextWrapper étend le contexte

Alors….

 Context context = this; 

(en classe de service ou d’activité)

Puisque Service est un Context , le contexte de la variable doit être le suivant:

 DataBaseManager dbm = Utils.getDataManager(this);