Метод onReceive BroadcastReceiver не вызывается

1

Я пытаюсь вызвать определенную функцию в своем приложении в определенное время каждую неделю. Вот что я сделал:

В моей деятельности у меня есть следующий код

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);

PendingIntent pIntent;

//my function to get first invoke time
        long lAlarmStartTime = getAlarmStartTime(Calendar.SUNDAY, alrm);

Intent intentArg = new Intent(getApplicationContext(), RcvAlarms.class).putExtra    (ALARM_ALARM_ID,  alrm.getMy_id());

pIntent = PendingIntent.getActivity(getApplicationContext(),
                (int) task.getMy_id() * 10 + Calendar.SUNDAY,
                intentArg, flag);

am.setRepeating(AlarmManager.RTC_WAKEUP, lAlarmStartTime,
                AlarmManager.INTERVAL_DAY * 7, pIntent);

У меня есть еще один класс:

public class RcvAlarms extends BroadcastReceiver {

public RcvAlarms() {
    // TODO Auto-generated constructor stub
}

@Override
public void onReceive(Context context, Intent intent) {//my job }

Мой манифест имеет следующий тег приемника внутри тега приложения:

<receiver android:name=".RcvAlarms" android.text="Repeat Task Receiver"></receiver>

Может кто-нибудь, пожалуйста, скажите мне, почему onReceive не вызывается, когда время моего устройства достигает времени начала?

Теги:
broadcastreceiver
alarmmanager

1 ответ

0

Код при настройке будильника - это код, который вы использовали бы, чтобы запустить его. Я думаю, вам нужен PendingIntent.getBroadcast(), а не PendingIntent.getActivity().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню