我希望alarmManager每月5日下午3点执行一项任务。我该怎么做?
首次启动取决于用户安装应用程序的时间。好吧,我可以做一些数学计算一下这个月的下一个5点需要多少毫秒,但我希望有一个更简单的方法
重复选项给我带来了真正的头痛。我只能设置一个固定的intervall。但两个月之间的时间并不固定,因为有时我有30天,有时候31天(更不用说2月份)。
我最好怎么做?
此致 甲
答案 0 :(得分:0)
你可以更简单地做到这一点,看看Date类: <击> http://developer.android.com/reference/java/util/Date.html 击>
<击>尝试类似Pseudo:
// This month 5th
Date date = new Date();
date.setDay(5);
// Next month the 5th
Date nextDate = new Date();
nextDate.setDay(5);
nextDate.setMonth(date.getMonth()+1);
击> <击> 撞击> 当你到了年底时,你会遇到问题,但问题比现在少。
还有其他Date API,有些会为您解决年份问题。只是环顾四周。
修改的
注意到已弃用使用日历:
http://developer.android.com/reference/java/util/Calendar.html
Calendar now = Calendar.getInstance();
now.setField(Calendar.DAY_OF_MONTH, 5);
// Next month the 5th
Calendar nextDate = new = Calendar.getInstance();
nextDate.setField(Calendar.DAY_OF_MONTH, 5);
nextDate.setField(Calendar.MONTH_OF_YEAR, date.getField(Calendar.MONTH_OF_YEAR)+1); // issues in december