Итак, у меня есть такое приложение, где вы можете создавать несколько журналов, и я хочу установить напоминания для каждого журнала.Например, в одном из журналов я установил напоминание, чтобы оно повторялось каждую неделю по вторникам и пятницам, а затем в другом журнале я хочу установить другое напоминание в те же дни, как я могу сделать так, чтобы напоминания не отменяли друг друга?Поскольку я не могу настроить повторение одного диспетчера тревог в разные дни, я устанавливаю несколько диспетчеров тревог для каждого выбранного дня с разными кодами запроса, но затем, если я устанавливаю для других диспетчеров тревог журнала с одинаковыми кодами запроса, они отменяют предыдущие напоминания.Как я мог решить это?(Пользователь может добавить несколько журналов, чтобы разные широковещательные приемники были недоступны)
fun setJournalReminder(context: Context, cls: Class<*>, hour: Int, minute: Int, day: Int){
val calendar = Calendar.getInstance()
val setCalendar = Calendar.getInstance().apply {
timeInMillis = System.currentTimeMillis()
set(Calendar.HOUR_OF_DAY, hour)
set(Calendar.MINUTE, minute)
set(Calendar.SECOND, 0)
}
when (day) {
1 -> setCalendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY)
2 -> setCalendar.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY)
3 -> setCalendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY)
4 -> setCalendar.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY)
5 -> setCalendar.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY)
6 -> setCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY)
7 -> setCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY)
}
if (setCalendar.before(calendar))
setCalendar.add(Calendar.DATE, 1)
val receiver = ComponentName(context, cls)
val pm = context.packageManager
pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)
val intent = Intent(context, cls)
val pendingIntent = PendingIntent.getBroadcast(context, day, intent, PendingIntent.FLAG_UPDATE_CURRENT)
val alarmManager = context.getSystemService(ALARM_SERVICE) as AlarmManager
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, setCalendar.timeInMillis, AlarmManager.INTERVAL_DAY * 7, pendingIntent)
}