Czy jest jakiś niezawodny sposób, aby uzyskać Context
odService
?
Chcę zarejestrować odbiornik emisji, ACTION_PHONE_STATE_CHANGED
ale nie potrzebuję mojej aplikacji, aby zawsze otrzymywać te informacje, więc nie umieszczam ich w Manifest
.
Nie mogę jednak dopuścić, aby odbiornik telewizyjny został zabity przez GC, gdy potrzebuję tych informacji, więc rejestruję odbiornik w Service
.
Dlatego muszę Context
zadzwonić registerReceiver()
. Kiedy już nie potrzebuję ACTION_PHONE_STATE_CHANGED
, wyrejestrowuję go.
Jakieś wskazówki?
android
broadcastreceiver
android-service
użytkownik123321
źródło
źródło
Service
rozszerza,ContextWrapper
który się rozszerzaContext
. DlategoService
jest toContext
. Użyj'this'
słowa kluczowego w serwisie.źródło
Service
rozszerza sięContextWrapper
ContextWrapper
rozszerza sięContext
Więc....
(w klasie usług lub działalności)
źródło
Ponieważ
Service
jest toContext
zmiennym kontekstem musi byćthis
:źródło
Ponieważ obsługa jest już Context sam
możesz nawet przejść przez:
LUB
źródło
na wypadek, gdyby ktoś coś dostał
NullPointerException
, musisz uzyskać kontekstonCreate().
Service
jestContext
, więc zrób to:źródło