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 http连接电脑数据库的服务端怎样写?
- 求助,Activities can't be added until the containing group has been created
- android开发环境的搭建
- mono for android 怎么导入第三方库?求解答
- 批量安装App的问题!求大神解惑!
- 新手,正在装安卓开发工具求解!
- 学android开发需要购买硬件吗?比如买个平板电脑?
- 按Home键后,再次回到程序,界面整体下移问题。
- activitygroup 焦点问题
- jni 如何把byte*转换成jstring类型的???
- 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;
}