Несколько сигналов тревоги одновременно

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

    fun setAlarm() {

   val time: String = "01:01 AM"
            val inFormat3 = SimpleDateFormat("hh:mm")
            val date = inFormat3.parse(time)
            Log.e("Timeis",date.minutes.toString() + " " + date.hours)
         //   val df = SimpleDateFormat("HH:mm")
          /*  val d = df.format(date)*/
            val calNow = Calendar.getInstance()
            val calSet = calNow.clone() as Calendar
            val calSet2 = calNow.clone() as Calendar

           // val cal = Calendar.getInstance()
            calSet.set(Calendar.HOUR_OF_DAY, date.hours)
            calSet.set(Calendar.MINUTE, date.minutes)
            calSet.set(Calendar.SECOND, 0)
            calSet.set(Calendar.MILLISECOND,0)
            calSet2.set(Calendar.HOUR_OF_DAY, date.hours)
            calSet2.set(Calendar.MINUTE, date.minutes)
            calSet2.set(Calendar.SECOND, 0)
            calSet2.set(Calendar.MILLISECOND,0)

            calSet.add(Calendar.MINUTE,-5)
            calSet2.add(Calendar.MINUTE,-2)

            if (calSet.compareTo(calNow) <= 0){
                //Today Set time passed, count to tomorrow
                calSet.add(Calendar.DATE, 1);
            }
            if (calSet2.compareTo(calNow) <= 0){
                //Today Set time passed, count to tomorrow
                calSet2.add(Calendar.DATE, 1);
            }


            val intent = Intent(this, AlarmReceiver::class.java)
            intent.putExtra("NotificationText", "some text")
            val pendingIntent = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT)
            val PendingIntent2 = PendingIntent.getBroadcast(this,2,intent,PendingIntent.FLAG_UPDATE_CURRENT)
            val alarmManager = this.getSystemService(Context.ALARM_SERVICE) as AlarmManager
            val alarmManager2 =  this.getSystemService(Context.ALARM_SERVICE) as AlarmManager
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(), 24*60*60*1000,pendingIntent)
            alarmManager2.setRepeating(AlarmManager.RTC_WAKEUP,calSet2.getTimeInMillis(),24*60*60*1000,PendingIntent2)
}

Теперь уведомление запускается только за 5 минут, а не за 2 минуты до уведомления. Что я здесь делаю не так?

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

попробуйте удалить первое уведомление и посмотрите, придет ли второе снова или нет

Pavneet_Singh 14.03.2018 20:56

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

cjnash 14.03.2018 20:57

Привет, @Pavneet_Singh. Я удалил первое уведомление, но второе не приходит.

Logan 14.03.2018 21:08

@cjnash идет второй, но он обновляет первый, как я могу его остановить?

Logan 15.03.2018 07:19

Что вы имеете в виду под своим последним комментарием «идет второй, но он обновляет первый»?

David Wasser 16.03.2018 17:22
1
5
46
0

Другие вопросы по теме