【问题标题】:AlarmManager set Alarm for Weekly Repeated On Selected DaysAlarmManager 设置每周在选定日期重复的警报
【发布时间】:2014-12-13 08:36:05
【问题描述】:

我正在创建具有设置多天警报的警报应用程序,即重复警报。我的 Android 警报应用程序视图像这样,

我已经为此编写了代码,

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(ALARM_ACTION_NAME);

alarmIntent.putExtra("AlarmID", m_alarmId);

PendingIntent alarmPI = PendingIntent.getBroadcast(this, m_alarmId, alarmIntent, 0);    

//listofred is a ArrayList of int items.contains int valye for selected days...for My Example listofred:3,4,5,7 
for (int i = 0; i < listOfred.size(); i++) {

                // for alarm ...
                calNow = Calendar.getInstance();
                calSet = (Calendar) calNow.clone();

                int day = calSet.get(Calendar.DAY_OF_WEEK);  //current day...for example.13 dec 2014 - sat  so, day = 7     

                calSet.set(Calendar.DAY_OF_WEEK, listOfred.get(i));
                calSet.set(Calendar.HOUR_OF_DAY, time_picker.getCurrentHour());
                calSet.set(Calendar.MINUTE, time_picker.getCurrentMinute());
                calSet.set(Calendar.SECOND, 0);
                calSet.set(Calendar.MILLISECOND, 0);


                alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
                        calSet.getTimeInMillis(), (DateUtils.DAY_IN_MILLIS)*7,
                        alarmPI);

                //parameter long intervalMillis.....(DateUtils.DAY_IN_MILLIS)*7 so that it will repeat after each 7 days...


            }

我的问题是,当我运行此代码时,它只会为星期六设置重复警报(即 listofred Arraylist 中的最后一个对象),每次它为 Arraylist 中的最后一个对象设置警报时。

【问题讨论】:

  • 将闹钟设置为每天重复,并让BroadcastReceiver 检查它是否是“红色”日子之一。如果是,那么做任何你想做的事——如果不是,什么也不做。
  • 嗨@Rahul,你能分享一下你计算剩余时间的代码吗?

标签: android alarmmanager


【解决方案1】:

我知道现在回答这个问题已经很晚了,但这不是因为每个警报事件都传递了相同的待处理意图。 也许这可能会有所帮助。

 PendingIntent alarmPI = PendingIntent.getBroadcast(this, m_alarmId, alarmIntent, PendingIntent.FLAG_ONE_SHOT);

https://stackoverflow.com/a/3009690/1111127

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多