развитие ежедневной тревоги в Android - PullRequest
5 голосов
/ 26 ноября 2011

У меня есть этот фрагмент кода, который запускает сигнал тревоги один раз, устанавливая время и дату, используя TimePicker и DatePicker в другом действии. Я хочу изменить его так, чтобы всякий раз, когда я устанавливал время и дату, он включал будильник каждый день в одно и то же время. Другими словами, я хочу, чтобы будильник срабатывал ежедневно.

public class M_ReminderManager {

    private Context mContext; 
    private AlarmManager mAlarmManager;

    public M_ReminderManager(Context context) {
        mContext = context; 
        mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    }

    public void setReminder(Long reminderId, Calendar when) {

        Intent i = new Intent(mContext, Medicines_OnAlarmReceiver.class);
        i.putExtra(RemindersDbAdapter.KEY_ROWID_MEDS, (long)reminderId); 

        PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT); 
        mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi);
      }
}

Я пытался использовать функцию setRepeating, но я не знаю, как именно я должен установить атрибуты Я использовал эту строку вместо функции set в коде, но она не работала:

mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis() ,AlarmManager.INTERVAL_DAY , pi);

Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

4 голосов
/ 26 ноября 2011

Просто измените код

alarmManager.set(AlarmManager.RTC_WAKEUP,
    calendar.getTimeInMillis(), pendingIntent)

в AndroidAlarmService классе до

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
    calendar.getTimeInMillis(), 5*1000, pendingIntent)

И прочитайте эту ссылку: http://android -er.blogspot.com / 2010/10 / schedule-repeating-alarm.html

1 голос
/ 26 ноября 2011

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

...