Мое приложение необходимо принять некоторые данные из сети в определенное время каждый день. Поэтому я использую AlarmManager, чтобы запланировать задачу, и это работает нормально.
Но при рассмотрении различных примеров, кажется, есть два способа справиться с AlarmManager, когда дело доходит до ожидающих намерений.
Одно использование PendingIntent.getbradeCast ()
Чтобы вызвать широковещательный приемник, когда сигнал тревоги выключается, и внутри этого получателя сервис для выполнения реальной работы запускается.
Другим подходом является использование PendingIntent.getService ()
и вызовите сервис напрямую, когда этот сигнал тревоги выключен.
Может ли кто-нибудь объяснить мне разницу между двумя подходами, поэтому я могу решить, какой из них можно полагаться?
Редактировать: еще один вопрос - это то, куда приобретать блокировку Wake при использовании GetService ()?
Например, , При использовании широкообразователя у меня есть следующая строка в OnreCeive ():
WakeReminderIntentService.acquireStaticLock(context);
Как я должен приобрести блокировку разбойников, если я вместо этого позвоню обслуживание напрямую, как:
PendingIntent pi = PendingIntent.getService(this, 0, new Intent(this, OnAlarmReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);
Должен ли я просто приобрести его в пределах сервиса?