Прочитайте описание метода setRepeating в developer.android.com
В соответствии с этим параметрами являются:
- типа - Один из ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC, или RTC_WAKEUP.
- triggerAtMillis - время в миллисекундах, которое должно сначала отключиться, используя соответствующие часы (в зависимости от типа тревоги).
- intervalMillis - интервал в миллисекундах между последующими повторами тревоги.
- Операция - Действие, которое необходимо выполнить при срабатывании сигнализации; обычно происходит из IntentSender.getBroadcast().
Теперь вы передаете текущее время в качестве второго параметра, говоря его немедленно уволить, а затем повторяться каждые 1 * 60000 * 60 * 24 Миллис.
Если вы хотите, чтобы сигнал тревоги, чтобы стрелять в первый раз после 1 * 60000 * 60 * 24 Millis, изменение ваш метод к:
am.setRepeating(AlarmManager.RTC, Calendar.getInstance()
.getTimeInMillis() + recurring, recurring, sender);
Edit:
на основе ваших комментариев , вы не должны сбрасывать будильник каждый раз, когда активность открывается. Поэтому вы должны сохранить свое состояние где-нибудь, например, в переменной в SharedPreferences. Так что ваш код должен Insted быть несколько, как это:
boolean areAlarmsAlreadySet = ...// get boolean variable from SharedPreferences
if (!areAlarmsAlreadySet)
{
Intent intent = new Intent(this, ReceiverReminder.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager) this
.getSystemService(Context.ALARM_SERVICE);
long recurring = (1 * 60000 * 60 * 24); // in milliseconds
am.setRepeating(AlarmManager.RTC, Calendar.getInstance()
.getTimeInMillis() + recurring, recurring, sender);
// set the variable in SharedPreferences to true
}
если вы пишете код в OnCreate он будет выполнять все время вы открыть, пока вы открываете свой код. рефакторировать его на любом методе и установить будильник, как при нажатии кнопки. – Sayem