При попытке установить событие AlarmManager предыдущее сбрасывается с новым временем, а новое не запускается

1

Вот мой код, который я пробовал, Шаги.

1) создание события AlarmManager, вызвав метод AM.Set(), предположим, со временем X.

2) создание другого события AlarmManager со временем Y.

Результат = первое событие запускается в момент времени Y вместо времени X. и второе не запускается вообще.

AlarmManager AM =(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent();
intent.setAction(Constants.ALARM_ACTION);
intent.putExtra(Constants.EXTRA_DATA1, data[0]);
intent.putExtra(Constants.EXTRA_DATA2, data[1]);
long selectedTime = Long.parseLong(data[2]);
PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, intent,0);
AM.set(AlarmManager.RTC,selectedTime, pi);

Я делаю что-то неправильно? Мне нужно вызвать все события.

Теги:

2 ответа

0
Лучший ответ

Ваши первые и второстепенные Intents эквивалентны, и поэтому вы PendingIntent тем же объектом PendingIntent в результате getBroadcast(). Или:

  • Используйте уникальный requestCode (2-й параметр для getBroadcast()), который, я думаю, очистит это или

  • Сделайте что-то уникальное действие, данные (Uri), категории или тип MIME для каждого Intent (дополнительные параметры не являются достаточными)

  • 0
    добавив код запроса, различный для каждого элемента, это работает для меня, спасибо PendingIntent pi = PendingIntent.getBroadcast (mContext, count ++, intent, 0);
0

Добавляя переменную count, которая будет автоматически увеличиваться при попытке getBroadcast. он работает сейчас.

AlarmManager AM =(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent();
intent.setAction(Constants.ALARM_ACTION_MESSAGE);
intent.putExtra(Constants.EXTRA_NUMBER, data[0]);
intent.putExtra(Constants.EXTRA_BODY, data[1]);
long selectedTime = Long.parseLong(data[2]);
PendingIntent pi = PendingIntent.getBroadcast(mContext, count++, intent,0);
AM.set(AlarmManager.RTC,selectedTime, pi);

Ещё вопросы

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