J'ai un service en cours d'exécution et je souhaite envoyer une notification. Dommage, l'objet de notification nécessite un Context
, comme un Activity
, et non un Service
.
Connaissez-vous un moyen de contourner cela? J'ai essayé de créer un Activity
pour chaque notification mais cela semble moche, et je ne trouve pas de moyen de lancer un Activity
sans aucun View
.
android
service
notifications
e-satis
la source
la source
Réponses:
Les deux
Activity
et enService
faitextend
Context
, vous pouvez simplement l'utiliserthis
comme votreContext
dans votreService
.la source
Ce type de notification est obsolète comme on le voit dans les documents:
Meilleure façon
Vous pouvez envoyer une notification comme celle-ci:
Meilleur moyen Le
code ci-dessus nécessite un niveau d'API minimum 11 (Android 3.0).
Si votre niveau d'API minimum est inférieur à 11, vous devez utiliser la classe NotificationCompat de la bibliothèque de support comme ceci.
Donc, si votre niveau d'API cible minimum est 4+ (Android 1.6+), utilisez ceci:
la source
la source
Eh bien, je ne suis pas sûr que ma solution soit la meilleure pratique. Utiliser
NotificationBuilder
mon code ressemble à ça:Manifeste:
et ici le Service:
Je ne sais pas s'il y a vraiment un
singleTask
atService
mais cela fonctionne correctement dans mon application ...la source
Si aucun de ces éléments ne fonctionne, essayez
getBaseContext()
plutôt quecontext
outhis
.la source
getBaseContext()
ces scénarios.