java-我可以在Android中设置AlarmManager的结束时间吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-我可以在Android中设置AlarmManager的结束时间吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1620字,纯文字阅读大概需要3分钟。
内容图文
![java-我可以在Android中设置AlarmManager的结束时间吗?](/upload/InfoBanner/zyjiaocheng/693/032c3333b9344898b85cca5a1f1f1c01.jpg)
我已将AlarmManager设置为在特定时间关闭,然后每隔一段时间重复一次.有多少时间可以停下来告诉它吗?甚至什么时候停止?
这是我到目前为止的内容:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 13);
calendar.set(Calendar.MINUTE, 56);
Intent intent = new Intent(this, MyService.class);
alarmIntent = PendingIntent.getService(this, 0, intent, 0);
alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 60 * 60, alarmIntent);
另外,我是否需要做任何事情以确保它每天都能正常运行?还是已经这样做了?
解决方法:
Is it possible to tell it after how many intervals to stop? Or even at what time to stop?
无法为AlarmManager指定结束时间,但是您可以做的是,每次在广播接收器中收到未决意图时,请检查是否需要取消该警报.要取消警报,您需要调用alarmManager.cancel(pendingIntent),其中pendingIntent具有与最初用于创建警报的PendingIntent相同的requestCode.
Also do i need to do anything to ensure it will go off every day?
如果您希望间隔每天触发一次,则需要将间隔设置为:1000 * 60 * 60 * 24.
您还需要注意设备重新启动的情况.如果用户重新启动设备,警报将被清除,您需要重新创建警报.您将需要实现另一个侦听RECEIVE_BOOT_COMPLETED的BroadcastReceiver,并在onReceive()中添加逻辑以重新创建警报.
另外,此行也是不必要的:
calendar.setTimeInMillis(System.currentTimeMillis());
这行:
Calendar calendar = Calendar.getInstance();
已经为您提供了一个设置为精确创建时间的Calendar对象.
您还应该添加以下几行,以确保您的闹钟每天恰好在13:56触发:
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
内容总结
以上是互联网集市为您收集整理的java-我可以在Android中设置AlarmManager的结束时间吗?全部内容,希望文章能够帮你解决java-我可以在Android中设置AlarmManager的结束时间吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。