如何在每天上午8:00设置警报

时间:2011-09-08 02:23:52

标签: android calendar

我试图在每天上午8点设置闹钟。

我知道如何创建闹钟,但我如何将其设置为每天上午8:00启动。

am.setRepeating()

1 个答案:

答案 0 :(得分:7)

您可以使用日历并将其设置为您想要的适当时间。然后你会做cal.getTimeInMillis(),并将其用于triggerAtTime,间隔为24 * 60 * 60 * 1000 = 86,400,000

您还必须确保已完成启动的BroadcastReceiver,因此如果手机已关闭然后再打开,您可以重新安排闹钟:

  

设备处于睡眠状态时保留已注册的警报(并且可以   如果它们在那段时间内关闭,可以选择将设备唤醒),但是   如果关闭并重新启动,将被清除。

要启动,请使用intent-filter "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)

我想对于类型,你会想要使用ELAPSED_REALTIME,然后获得triggerAtTime,你会得到一个与明天早上8点匹配的日历(称之为cal),然后

triggerAtTime = cal.getTimeInMillis()-Calendar.getInstance().getTimeInMillis()

那就是

alarmMan.setRepeating(AlarmManager.ELAPSED_REALTIME, triggerAtTime, 86400000, pendingIntent);

而且我不知道明天早上8点如何使用日历获得,但我认为你会cal.getInstance(),然后是cal.add(Calendar.DAY, 1)然后cal.set(Calendar.HOUR_OF_DAY, 8)

http://developer.android.com/reference/java/util/Calendar.html

我几乎没有使用过Calendar,所以我可能会遇到一些错误,你可能需要稍微玩一下,但这基本上是需要做的。将来,如果您只是阅读DOC并使用它,您通常可以弄明白。