Mam uruchomioną usługę i chcę wysłać powiadomienie. Szkoda, obiekt powiadomienia wymaga a Context
, jak an Activity
, a nie Service
.
Czy wiesz, jak to ominąć? Próbowałem utworzyć Activity
dla każdego powiadomienia, ale wydaje się brzydkie i nie mogę znaleźć sposobu na uruchomienie Activity
bez żadnego View
.
android
service
notifications
e-satis
źródło
źródło
Odpowiedzi:
Zarówno
Activity
iService
faktycznieextend
Context
, możesz po prostu używaćthis
jakoContext
swojegoService
.źródło
Ten typ powiadomienia jest przestarzały, co widać w dokumentach:
Lepszy sposób
Możesz wysłać takie powiadomienie:
Najlepszy sposób, aby
powyższy kod wymagał minimalnego poziomu API 11 (Android 3.0).
Jeśli twój minimalny poziom API jest niższy niż 11, powinieneś użyć klasy NotificationCompat biblioteki obsługi w ten sposób.
Jeśli więc minimalny docelowy poziom interfejsu API to 4+ (Android 1.6+), użyj tego:
źródło
źródło
Cóż, nie jestem pewien, czy moje rozwiązanie jest najlepszą praktyką. Korzystanie z
NotificationBuilder
mojego kodu wygląda następująco:Oczywisty:
a tutaj Serwis:
Nie wiem, czy naprawdę istnieje
singleTask
at,Service
ale to działa poprawnie w mojej aplikacji ...źródło
Jeśli żadne z tych rozwiązań nie działa, spróbuj
getBaseContext()
zamiastcontext
lubthis
.źródło
getBaseContext()
tych scenariuszy.