L'envoi d'une notification à partir d'un service dans Android
J'ai un service en cours d'exécution, et voudrais envoyer une notification. Dommage, l'objet de notification nécessite un Context
, comme un Activity
, et pas un Service
.
Connaissez-vous un moyen d'en passer ça ? J'ai essayé de créer un Activity
pour chaque notification, mais il semble laid, et je ne peux pas trouver un moyen de lancer une Activity
sans View
.
- Euh... un Service est un contexte!
- Dieu, tel un dumbbass. Ok, désolé pour les déchets de tout le monde du moment.
- C'est très bien - c'est une bonne Google question.
- Comme votre deuxième commentaire 😀 😀
- Ce post juste sauvé ma journée...
Vous devez vous connecter pour publier un commentaire.
Les deux
Activity
etService
faitextend
Contexte
de sorte que vous pouvez simplement utiliserthis
que votreContext
au sein de votreService
.Ce type de Notification est obsolète vu de documents:
Meilleure façon
Vous pouvez envoyer une notification comme ceci:
Meilleure façon
Le Code ci-dessus les besoins de l'API minimum de niveau 11 (Android 3.0).
Si votre API minimum niveau est inférieur à 11, vous devriez vous utilisez bibliothèque de prise en charge's NotificationCompat classe comme ça.
Donc, si votre objectif minimal de l'API de niveau est de 4+ (Android 1.6+) utilisez ceci:
Bien, je ne sais pas si ma solution est la meilleure pratique. À l'aide de la
NotificationBuilder
mon code ressemble à ça:Manifeste:
et ici le Service:
Je ne sais pas si il y a vraiment un
singleTask
àService
mais cela fonctionne correctement à ma demande...Si aucune de ces solutions ne fonctionne, essayez de
getBaseContext()
, au lieu decontext
outhis
.getBaseContext()
est l'un de ces scénarios.