当前位置 : 主页 > 手机开发 > android >

android – 如何设置闹钟每天上午8:00开火

来源:互联网 收集:自由互联 发布时间:2021-06-11
我试图在每天早上8点开火. 我知道如何创建闹钟,但我将如何将其设置为每天上午8:00启动. am.setRepeating() 您可以使用日历并将其设置为您想要的适当时间.然后你会做cal.getTimeInMillis(),并将
我试图在每天早上8点开火.

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

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

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

Registered alarms are retained while the device is asleep (and can
optionally wake the device up if they go off during that time), but
will be cleared if it is turned off and rebooted.

对于启动,您使用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:00匹配的日历(称之为cal),然后做

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

那就是

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

而且我不知道如何使用Calendar在明天早上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并使用它,您通常可以解决它.

网友评论