#android
#Android
Вопрос:
Я создаю приложение, которое использует alarm Manager. Пользователь устанавливает день и время, и есть 7 флажков, по одному на каждый день недели, и те, которые они помечают, будут срабатывать в эти дни. Как я знаю, вы можете указать дату и время в диспетчере сигналов тревоги, есть ли какой-либо способ, которым я могу указать день и время в диспетчере сигналов тревоги, и они будут отключаться в этот день каждую неделю?
Ответ №1:
AlarmManager.setRepeating принимает в качестве параметра:
введите одно из значений ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP}, RTC или RTC_WAKEUP.
Здесь вам понадобится RTC или RTC_WAKEUP
Время срабатывания будильника должно сначала сработать, используя соответствующие часы (в зависимости от типа будильника).
Здесь вы указываете дату / время первого сигнала тревоги (я полагаю, это должно быть время UTC, поэтому будьте осторожны)
Calendar calendar = new GregorianCalendar(2011, Calendar.APRIL, 19, 23, 12);
long firstTime = calendar.getTimeInMillis();
интервал Между последующими повторами сигнала тревоги.
Чтобы повторять каждую неделю, вы будете указывать в качестве интервала количество миллисекунд за целую неделю:
long interval = 1000 * 60 * 60 * 24 * 7;
или
long interval = 7 * AlarmManager.INTERVAL_DAY;
Комментарии:
1. Отметьте ответ как принятый (используя галочку слева), если этот ответ был полезен для вас и решил вашу проблему.
2. Спасибо за проверку работоспособности. Я делаю это сам, и меня обнадеживает, что решение, к которому я пришел, является тем, которое вы предлагаете здесь.