Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

developing daily alarm in android

I have this piece of code that fire the alarm once by setting a time and date using the TimePicker and the DatePicker in another activity. I want to modify it in a way that whenever I set a time and a date it will fire the alarm everyday at the same time. In other words I want the alarm to be fired daily.

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);
      }
}

I have tried using setRepeating function but I don't know how exactly I should set the attributes I used this line instead of the set function on the code but it didn't work:

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

Can someone help me with it?

like image 763
zoza Avatar asked Nov 26 '11 09:11

zoza


1 Answers

Just modify the code

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

in AndroidAlarmService class to

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

And read this link: http://android-er.blogspot.com/2010/10/schedule-repeating-alarm.html

like image 84
Tofeeq Ahmad Avatar answered Sep 25 '22 15:09

Tofeeq Ahmad