Расписание Alarm Manager ежедневно


0

У меня есть проблемы с настройкой Android AlarmManager для ежедневного выполнения. Пользователь может установить свое конкретное время, и он должен работать ежедневно в это время. Вот код:

@Override 
protected void onResume() { 
    super.onResume(); 

    Intent intent = new Intent(MainActivity.this, 
      NotificationBroadcastReceiver.class); 
    PendingIntent pendingIntent = PendingIntent.getService(
      MainActivity.this, 0, intent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 

    // Make sure, there is no active Alarm 
    alarmManager.cancel(pendingIntent); 

    if(notificationEnabled) { 
     Calendar cal = Calendar.getInstance(); 
     cal.set(Calendar.AM_PM, Calendar.PM); 

     cal.set(Calendar.HOUR_OF_DAY, notificationHour); 
     cal.set(Calendar.MINUTE, notificationMinute); 
     cal.set(Calendar.SECOND, 0); 


     alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
       cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, 
       pendingIntent); 
    } 

} 

Теперь я не могу понять, почему это не будет работать. Однажды я установил будильник в 10:05, и будильник загорелся вечером. Сигнал тревоги должен срабатывать каждый день в определенное время (если он включен, конечно). Начиная с текущего дня. Так что, если я установить его в течение нескольких минут или часов спустя, он должен работать и сегодня, и каждый день, пока я не отменить тревогу. #

Заранее спасибо

0

Я думаю, вы получите неправильный Unixtimestamp от календар.

Попробуйте

// Set the alarm to start at approximately 2:00 p.m. 
Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
calendar.set(Calendar.HOUR_OF_DAY, 14); 

// With setInexactRepeating(), you have to use one of the AlarmManager interval 
// constants--in this case, AlarmManager.INTERVAL_DAY. 
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
     AlarmManager.INTERVAL_DAY, alarmIntent); 

From Android Trainigs Scheduling Repeating Alarms

  0

Unfurtunately это не работает. 16 июн. 142014-06-16 11:37:54