如何设置闹钟在每天早上8点开火
您可以使用日历并将其设置为您想要的适当时间。那么你会做cal.getTimeInMillis()
,并使用triggerAtTime,间隔将是24 * 60 * 60 * 1000 = 86,400,000
你也必须确保你有一个BroadcastReceiver引导完成,所以如果手机关闭电源再重新开启,你可以重新安排报警:
而设备是睡着了已注册的警报被保留(可以 可选唤醒设备,如果他们在这段时间内熄灭),但 将被清除,如果它被关闭并重新启动。
对于启动,您可以使用意图过滤"android.intent.action.BOOT_COMPLETED"
,你必须持有允许"android.permission.RECEIVE_BOOT_COMPLETED"
,以防万一你需要的信息。
为了您的方便,这里有几个链接。 的日历页:
http://developer.android.com/reference/java/util/Calendar.html
在页面上AlarmManager:
http://developer.android.com/reference/android/app/AlarmManager.html
So how would that look inside AlarmManager.setRepeating()?
这里是方法:
setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
我猜类型,你会想要你SE ELAPSED_REALTIME,然后让triggerAtTime,你会得到一个日历(称之为CAL)匹配上午8:00明天早上,然后做
triggerAtTime = cal.getTimeInMillis()-Calendar.getInstance().getTimeInMillis()
那么这将是
alarmMan.setRepeating(AlarmManager.ELAPSED_REALTIME, triggerAtTime, 86400000, pendingIntent);
而且我不“知道究竟如何使用日历在8:00 AM得到明天,但我想你会做cal.getInstance()
,然后cal.add(Calendar.DAY, 1)
然后cal.set(Calendar.HOUR_OF_DAY, 8)
http://developer.android.com/reference/java/util/Calendar.html
我很少使用日历,所以我可能有一些错误,你可能需要玩一点,但这基本上是需要做的。将来,如果你只是阅读DOC并玩一些,你通常可以弄清楚。
那么怎么会看到里面AlarmManager.setRepeating()? –