Есть ли надежный способ получить Context
от Service
?
Я хочу зарегистрировать радиовещательный приемник, ACTION_PHONE_STATE_CHANGED
но мне не нужно, чтобы мое приложение всегда получало эту информацию, поэтому я не помещаю ее в Manifest
.
Однако я не могу позволить, чтобы широковещательный приемник был уничтожен GC, когда мне нужна эта информация, поэтому я регистрирую широковещательный приемник в Service
.
Следовательно, мне нужно, Context
чтобы позвонить registerReceiver()
. Когда мне больше не нужно, ACTION_PHONE_STATE_CHANGED
я отменяю регистрацию .
Какие-нибудь советы?
android
broadcastreceiver
android-service
user123321
источник
источник
Service
расширяется,ContextWrapper
что расширяетсяContext
. Следовательно,Service
являетсяContext
. Используйте'this'
ключевое слово в сервисе.источник
Service
продолжаетсяContextWrapper
ContextWrapper
продолжаетсяContext
Так....
(в классе обслуживания или деятельности)
источник
Поскольку
Service
этоContext
, переменная контекст должен бытьthis
:источник
Так как сервис уже сам по себе является контекстом
Вы можете даже получить это через:
ИЛИ
источник
на всякий случай, если кто-то получает
NullPointerException
, вам нужно получить контекст внутриonCreate().
Service
этоContext
, так что сделайте это:источник