Existe-t-il un moyen fiable d'obtenir un Context
d'un Service
?
Je souhaite enregistrer un récepteur de diffusion pour ACTION_PHONE_STATE_CHANGED
mais je n'ai pas besoin que mon application obtienne toujours ces informations, donc je ne les mets pas dans le Manifest
.
Cependant, je ne peux pas faire tuer le récepteur de diffusion par le GC lorsque j'ai besoin de ces informations, donc j'enregistre le récepteur de diffusion dans un fichier Service
.
Par conséquent, j'ai besoin d'un Context
appel registerReceiver()
. Quand je n'ai plus besoin de ACTION_PHONE_STATE_CHANGED
je le désinscris .
Des conseils?
android
broadcastreceiver
android-service
user123321
la source
la source
Service
s'étendContextWrapper
qui s'étendContext
. Par conséquent,Service
c'est unContext
. Utilisez un'this'
mot-clé dans le service.la source
Service
étendContextWrapper
ContextWrapper
étendContext
Alors....
(en classe de service ou d'activité)
la source
Puisque
Service
est unContext
, le contexte variable doit êtrethis
:la source
Comme le service est déjà un contexte lui-même
vous pouvez même le faire passer:
OU
la source
juste au cas où quelqu'un obtiendrait
NullPointerException
, vous devez obtenir le contexte à l'intérieuronCreate().
Service
est unContext
, alors faites ceci:la source