在android中开发每日警报

zoz*_*oza 5 android set repeat alarm

我有这段代码通过在另一个活动中使用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);
      }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用setRepeating函数,但我不知道我应该如何设置我使用此行的属性而不是代码上的set函数,但它不起作用:

mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis() ,AlarmManager.INTERVAL_DAY , pi);
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

Tof*_*mad 4

只需修改代码即可

alarmManager.set(AlarmManager.RTC_WAKEUP,
    calendar.getTimeInMillis(), pendingIntent)
Run Code Online (Sandbox Code Playgroud)

AndroidAlarmService课堂上

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
    calendar.getTimeInMillis(), 5*1000, pendingIntent)
Run Code Online (Sandbox Code Playgroud)

并阅读此链接:http://android-er.blogspot.com/2010/10/schedule-repeating-alarm.html

  • 您需要将 5*1000 替换为 AlarmManager.INTERVAL_DAY 以每天设置 (2认同)