AlarmManager установлен на то же время onReceive вызывается только один раз - PullRequest
0 голосов
/ 01 июня 2018

Я новичок в программировании Android.Я занимаюсь разработкой приложения с локальным уведомлением.Я использую Alarmmanager для установки локального уведомления.Когда я устанавливаю то же время в Alarmmanager, onReceive вызывается один раз за это времяМое ожидаемое намерение также отличается.

Вот как я устанавливаю будильник:

for(int i = 0; i < dosageDtoList.size();i++)
{
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    DosageDto dosageDto = dosageDtoList.get(i);

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");

    String time = dosageDto.getReminderTime();
    String dateTime = startDateStr + " " + time;
    Date formattedDate = simpleDateFormat.parse(dateTime);                        

    Calendar cal = Calendar.getInstance();                        
    cal.setTime(formattedDate);

    Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION");
    notificationIntent.addCategory("android.intent.category.DEFAULT");

    notificationIntent.putExtra(Constants.POS,i);                        
    notificationIntent.putExtra(Constants.END_DATE, endDateStr);                        
    notificationIntent.putExtra(Constants.TITLE, userDrugDto.getUserName());                        
    notificationIntent.putExtra(Constants.SUB_TITLE, userDrugDto.getDrugName());

    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                                    Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);

    PendingIntent broadcast = PendingIntent.getBroadcast(context, i, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    if(alarmManager != null)
     { 
       alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, broadcast);
     }
}

Вот мой класс приемника:

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
      // generating notification 
    }
}

Если я установил будильник дляэти две даты и время 1. 01-June-2018 15:10 2. 01-June-2018 15: 10

В идеале с разными отложенными намерениями в идеале onReceive следует вызывать дважды, но вызывать его один раз.

Я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...