在android中开发每日警报

时间:2011-11-26 09:47:13

标签: android set alarm repeat

我有这段代码通过在另一个活动中使用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 个答案:

答案 0 :(得分:4)

只需修改代码

即可
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 :(得分:1)

您可以看到以下链接:How to run a service every day at noon, and on every boot 您应该记得在重新启动电话时重置计划,链接包含该代码。