似乎根据实际经过的时间(与设备Hibernate时停止的正常运行时间相反)来对操作进行计时的唯一方法是AlarmManager。
是否有一种简单的方法来实现基于“壁钟”的延迟执行,例如通过一个围绕AlarmManager的开源包装器?
对于正常的计时操作,您可以使用一个处理程序,这就像这样一个简单的任务应该有的那样容易:
removecallbacksandmessages(null)
但是,Handler只支持基于正常运行时间的延迟,这有时是不够的(例如,如果您希望每15分钟检查一次服务器是否有新消息)。
对于正常的计时操作,可以使用处理程序
仅来自前台活动。对处理程序
进行长期轮询的任何其他使用充其量都是不可靠的,甚至忽略了您对正常运行时间计算的担忧。
为闹钟定义一个动作
这没必要。这甚至不是一个好主意。
创建一个接收器(通过创建一个专用的接收器类并将其声明为清单,或者实现接口,使用registerReciever注册接收器,并在完成后取消注册)
如果希望事件在您不在前台时发生,并且警报在设备处于Hibernate状态时发出(_wakeup
报警),则需要清单注册的接收器。如果不需要_wakeup
,服务就足够了。如果您只需要在前台并在活动中接收事件,则使用createPendingResult()
为您提供一个pendingIntent
,它将触发活动的onActivityResult()
。但是,在后一种情况下,在视图
或处理程序
上使用postdelay()
会更有意义。
如果要取消警报,则存储挂起的意图
如果存储pendingintent
是一个选项,那么handler
就是您所需要的,而AlarmManager
是不合适的。要取消警报,需要等效的pendingintent
(其中基础的intent
对象根据filterequals()
匹配,并且pendingintent
操作[activity,service,broadcast]相同)。
当您想要取消警报时,使用存储的pendingIntent取消它
不,可以通过创建等效的PendingIntent
来取消它。
如果您决定有多个意图或意图更改数据,您将不得不保存它们,以便之后清理警报管理器
不,可以通过创建等效的PendingIntent
来取消它们。
或者,使用ScheduledExecutorService
和Wakelock
来处理短期事务。这不适合“每15分钟一次”的情况,因为它使设备一直处于清醒状态。
我试过很多次了,但什么也没有。 这是类的代码,它应该设置警报,但在指定的时间和日期没有发生任何事情。
我想取消所有设置的警报。。。。。我已经搜索了很多,尝试了很多东西,但都没有成功。。。当我将闹钟设置为2分钟后,然后取消它时,2分钟后它仍会启动。。。。。任何帮助都将不胜感激。 创建警报的方法: 这是为了取消报警:
我有一个应用程序,在指定的时间设置警报与TimePicker(24小时模式)。 我注意到,如果时间是23:00,而您将报警设置为01:00,AlarmManager会将其解释为已过日期。目前,我设置的警报如下所示: 正如你所看到的,该应用程序计算时差,如果时差为负值,则设置第二天的警报。这就产生了上面描述的bug。如何修复它? 当做 马库斯
本文向大家介绍C++设置超时时间的简单实现方法,包括了C++设置超时时间的简单实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++设置超时时间的简单实现方法,代码简单易懂,功能实用。分享给大家供大家参考。具体实现方法如下: 此处setsockopt为针对套接口的操作,感兴趣的朋友可以查阅相关资料做进一步了解。 希望本文所述对大家的C++程序设计有所帮助。
问题内容: 我的问题是关于如何从多个(或分片的)tfrecords获取批处理输入。我已经阅读了示例https://github.com/tensorflow/models/blob/master/inception/inception/image_processing.py#L410。基本的管道,把培训作为集为例,(1)首先产生一系列tfrecords(例如,,,…),从这些文件名(2),生成一个
本文向大家介绍js简单设置与使用cookie的方法,包括了js简单设置与使用cookie的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js简单设置与使用cookie的方法。分享给大家供大家参考,具体如下: 一、js设置cookie的用处 php可以设置cookie的,用js来设置cookie有什么好处呢?在前端进行操作时,有的时候要传很多参数,这个时候,我们可以把这些参数拼接到ur