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.
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);