Должен ли я использовать PendingIntent.getservice () или GetBroadcast с AlarmManager?

Мое приложение необходимо принять некоторые данные из сети в определенное время каждый день. Поэтому я использую 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);

Должен ли я просто приобрести его в пределах сервиса?

41
задан marlar 5 September 2011 в 14:43
поделиться