在Android sdk警报管理器中的选定日期重复计划任务

时间:2011-11-15 21:22:11

标签: android sdk calendar alarmmanager

我试图这样做而不打扰专家,并在这里和其他网站上阅读了很多线程。很明显,我的大脑不理解需要做什么才能使其发挥作用。

我的目标是该应用允许用户输入一周的时间和一天或多天。所有的GUI端和存储我已经完成的日期和时间,然而让闹钟管理器重复,让我们说每周一的14:00然后可以在14:02发送。我已经使用java Calendar对象来保存一周的时间和日期,甚至使用了一周中的日期和星期几。然后根据需要将它们转换为毫秒,以便警报管理器读入它。

然后我使用了警报管理器设置或设置重复方法来重复该事件。我所能做的就是让它发生一次然后如果我将模拟器的日期和时间更改为另一个星期一没有任何反应。

GUI保存所需变量中的小时和分钟,然后将其用于日历对象。

警报管理器呼叫广播接收器以发生事件。

请有人可以举例说明如何设置特定日期,如周一,周三周五。我知道每天都需要单独的警报管理员,而目前我只关注周一作为我的主要测试。

查看链接:


管理现在解决这个问题,然后按照我的回答:

以下代码计算从现在到计划任务所需日期之间的剩余天数。变量whichday通过参数传递给该代码所属的方法。在理解这一天哪一天代表星期1到7的日子,其中1是星期日,2星期一,所以。

//This gets the current day of the week as of TODAY / NOW
int checkcurrentday = getcurtime.get(Calendar.DAY_OF_WEEK);

// This calculates the days between now and the day needed which is represented by whichday.
int numberofdays = Calendar.SATURDAY + whichday - checkcurrentday;

//Now add NOT set the difference of the days to your Calendar object
tMondayOn.add(Calendar.DATE, numberofdays);

1 个答案:

答案 0 :(得分:5)

嗯,你需要先使用Java Calendar API(或Joda!)来确定下一个星期一的时间。将警报设置为该时间(以毫秒为单位),然后使用setRepeating并传入表示一周间隔的long。