AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getService(context,0,new Intent(context,target),1);
am.setRepeating(AlarmManager.RTC_WAKEUP,calculateAlarm(starHour,startMinute),context).getTimeInMillis(), 3600000, pi);
我写了一个闹钟小程序 并且写了一个设置闹钟的方法 主要代码如上所示 我还写了一个计算下次闹钟的时间 经过打印确定计算出来的时间是正确的 比如我设置每天早上8点05分提醒起床 带一次到了早上8点05分任务确实准时执行了 在任务执行完后我又这是一个新的闹钟 时间是第二天早上8点05 经过测试 发现第二天闹钟时间不准确了 不知该怎么办 求各位帮忙
解决方案 »
- android中引用jsip包 命名空间javax.****与安卓系统冲突 ,refactory修改过路径之后,类型转换出错了!
- 多层嵌套的xml该如何处理?
- android 关于文件的拷贝
- 怎么设置TableLayout里面单元格边框颜色,很急,谢谢!分就这么多了.
- 为什么没反应呢??
- android兼容性
- webservice调用外汇的问题
- 如何使用百度云 API 推送富媒体消息,百度推送的富媒体发送官方接口是什么?
- 安装新版本app出现的问题
- Android 使用自己的keystore生成的apk,不能访问微信登录。求救
- Window8要出了,请问下android和.net的就业前景哪个更好
- 进来讨论下关于android的学习方向
/**
* Given an alarm in hours and minutes, return a time suitable for
* setting in AlarmManager.
*/
static Calendar calculateAlarm(int hour, int minute,
Alarm.DaysOfWeek daysOfWeek) { // start with now
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis()); int nowHour = c.get(Calendar.HOUR_OF_DAY);
int nowMinute = c.get(Calendar.MINUTE); // if alarm is behind current time, advance one day
if (hour < nowHour ||
hour == nowHour && minute <= nowMinute) {
c.add(Calendar.DAY_OF_YEAR, 1);
}
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0); int addDays = daysOfWeek.getNextAlarm(c);
if (addDays > 0) c.add(Calendar.DAY_OF_WEEK, addDays);
return c;
}