一种Alarm优化管理方法及系统技术方案

技术编号:15238831 阅读:122 留言:0更新日期:2017-04-29 04:46
本发明专利技术公开了一种Alarm优化管理方法,包括步骤:当有Alarm需要删除时,根据Alarm的标识,遍历定时器集合列表中的每个定时器集合的Alarm列表,判断是否存在Alarm与待删除的Alarm匹配,若是,进入步骤S200,否则结束操作;记录定时器集合的标识,删除定时器集合中的匹配上的Alarm;根据定时器集合中剩下的Alarm的起始到时时间值和最晚到时时间值,获得定时器集合的新起始到时时间值和新最晚到时时间值,判断定时器集合的新起始到时时间值是否与原起始到时时间值一致,若是,则结束操作;否则保留定时器集合中剩余的Alarm,删除定时器集合,并将剩余的Alarm添加到定时器集合列表中的各定时器集合中。通过本发明专利技术,在删除Alarm管理操作是,大大提高了系统效率。

【技术实现步骤摘要】

本专利技术涉及计算机网络
,尤其涉及一种Alarm优化管理方法及系统。
技术介绍
Android系统中,AlarmManagerService负责所有应用的Alarm(定时器)的设置和管理。AlarmManagerService定义了ArrayList<Batch>mAlarmBatches数组来进行Alarm的管理,每个Batch(定时器集合)中定义了ArrayList<Alarm>alarms数组,每个Batch由多个Alarm组成。当应用取消Alarm或者AlarmManagerService判断到Alarm失效后,就会将Alarm从Batch列表中删除,此时需要重新构建Batch数组,以便能更加有效的将Alarm重新组成合适的Batch列表。目前的做法是将所有的Alarm从Batch列表中删除,同时删除已经构建好的Batch列表,然后重新构建新的Batch列表,并且重新将Alarm添加到Batch列表中。当Alarm比较多,同时Alarm的取消操作比较多时,这种操作费事费力,并且AlarmManagerService运行于系统进程中,这样会影响到系统的效率。
技术实现思路
本专利技术提供一种Alarm优化管理方法及系统,用以解决上述现有技术中存在的问题,能够高效率的构建新的Batch列表,而不是全部推倒重来,影响系统效率。本专利技术一种Alarm优化管理方法,包括步骤:S100当有Alarm需要删除时,根据所述Alarm的标识,遍历所述定时器集合列表中的每个定时器集合的Alarm列表,判断是否存在Alarm与待删除的Alarm匹配,若是,进入步骤S200,否则结束操作;S200记录所述定时器集合的标识,删除所述定时器集合中的匹配上的Alarm;S300根据所述定时器集合中剩下的Alarm的起始到时时间值和最晚到时时间值,获得所述定时器集合的新起始到时时间值和新最晚到时时间值,判断所述定时器集合的新起始到时时间值是否与原起始到时时间值一致,若是,则结束操作;否则进入步骤S400;S400保留所述定时器集合中剩余的Alarm,删除所述定时器集合,并将所述剩余的Alarm添加到定时器集合列表中的各定时器集合中。在进行Alarm删除时,首先通过Alarm的标识匹配Batch(相当于定时器集合)中的所有Alarm,如果匹配不上,则说明该Alarm不存在,操作结束。一旦匹配上了,则记录下该Alarm所在的BatchIndex(相当于定时器集合标识),并从该Batch中删除对应的Alarm。然后根据剩下的Alarm的起始到时时间和最晚到时时间确定该Batch的start(起始到时时间)值是否需要调整,如果不需要调整,则不需要进行Batch列表的重构和Alarm的重新添加,如果start值需要调整,则保留该Batch下的所有剩下的Alarm,从Batch列表中删除该Batch,然后将先前保留的Alarm添加到Batch列表中。这样最多只需要添加这个Batch中的Alarm,而不是重构整个Batch列表,再重新添加所有的Alarm,效率相对来要提高很多。进一步的,所述步骤S300包括步骤:S310获取所述定时器集合剩下的Alarm各起始时间值和最晚到时时间值;S320取所述剩下Alarm的最大的起始时间值为所述定时器集合的新起始时间值,取所述剩下Alarm的最小的最晚到时时间值为所述定时器集合的新的最晚到时时间值;S330判断所述定时器集合的新的起始时间值是否与所述定时器集合原起始时间值一致?若是,则进入步骤S500;否则,进入步骤S400。进一步的,所述步骤S400包括步骤:S410构建待调整定时器集合标识列表,将所述定时器集合的标识添加到待调整定时器集合标识列表中;S420删除所述待调整定时器集合标识列表中相同的定时器集合标识;S430根据所述待调整定时器集合标识列表,按照所述定时器集合标识查找到对应的定时器集合;S440保留所述定时器集合中的所有Alarm,删除所述定时器集合;S450将所述保留的所有Alarm添加到所述定时器集合列表的定时器集合中。构建待调整的BatchIndex列表(相当于待调整的定时器集合标识列表),将删除Alarm后,start值发生改变的Batch的BathIndex记录在BatchIndex列表中,然后再根据列表查找到对应的Batch,保留里面的Alarm,删除该Batch,再将保留的Alarm添加到Batch列表的各Batch中。进一步的,所述步骤S450包括步骤:S451根据Alarm的添加规则,判断所述Alarm是否能添加到所述定时器集合列表的现有定时器集合中,若是,则进入步骤S452;否则,进入步骤S453;S452将所述Alarm添加至所述定时器集合中;S453根据所述Alarm的起始到时时间值与最晚到时时间值,建立一个新定时器集合,将所述Alarm添加至所述新定时器集合中,所述新定时器集合的起始到时时间即为所述Alarm的起始到时时间,所述新定时器集合的最晚到时时间即为所述Alarm的最晚到时时间;将所述新定时器集合添加至所述定时器集合列表中。将保留的Alarm添加至Batch列表的各Batch中,会出现两种情况,一种是,根据Alarm的添加规则,可以加入现有的Bath中,另外一种是无法加入现有的Batch中,这时,我们就需要根据这个Alarm的起始到时时间和最晚到时时间,重新构建一个Batch,这个Batch会列入Batch列表中,这个Alarm也会添加到这个重构的Batch中。进一步的,所述Alarm的添加规则为:当Alarm的起始到时时间值小于定时器集合的最晚到时时间值,且所述Alarm的最晚到时时间值大于所述定时器集合的起始到时时间值时,添加所述Alarm至所述定时器集合。进一步的,还包括步骤:S450获取各定时器集合的起始到时时间值,将起始到时时间最先到达的定时器集合的起始到时时间设置到底层驱动。本专利技术还提供一种Alarm优化管理系统,包括遍历查找模块、控制判断模块、删除模块、获取模块、添加模块;所述控制判断模块分别与所述遍历查找模块、删除模块、获取模块、及添加模块相连;其中:当有Alarm需要删除时,所述遍历查找模块根据所述Alarm的标识,遍历所述定时器集合列表中的每个定时器集合的Alarm列表,所述控制判断模块判断是否存在Alarm与待删除的Alarm匹配;若存在Alarm与待删除的Alarm匹配,则所述控制判断模块记录所述定时器集合的标注,并通过删除模块删除所述定时器集合中的匹配上的Alarm,所述获取模块根据所述定时器集合中剩下的Alarm的起始到时时间值和最晚到时时间值,获得所述定时器集合的新起始到时时间值和新最晚到时时间值,所述控制判断模块判断所述定时器集合的新起始到时时间值是否与原起始到时时间值一致,若是,则结束操作,否则,所述控制判断模块保留所述定时器集合中剩余的Alarm,通过所述删除模块删除所述定时器集合,再通过所述添加模块将所述剩余的Alarm添加到定时器集合列表中的各定时器集合中;若不存在Alarm与待删除的Alarm匹配,则所述控制判断模块判断结束操作。进一步的,还包括与所述控制判断模块相连的构建模本文档来自技高网...

【技术保护点】
一种Alarm优化管理方法,其特征在于,包括步骤:S100当有Alarm需要删除时,根据所述Alarm的标识,遍历所述定时器集合列表中的每个定时器集合的Alarm列表,判断是否存在Alarm与待删除的Alarm匹配,若是,进入步骤S200,否则结束操作;S200记录所述定时器集合的标识,删除所述定时器集合中的匹配上的Alarm;S300根据所述定时器集合中剩下的Alarm的起始到时时间值和最晚到时时间值,获得所述定时器集合的新起始到时时间值和新最晚到时时间值,判断所述定时器集合的新起始到时时间值是否与原起始到时时间值一致,若是,则结束操作;否则进入步骤S400;S400保留所述定时器集合中剩余的Alarm,删除所述定时器集合,并将所述剩余的Alarm添加到定时器集合列表中的各定时器集合中。

【技术特征摘要】
1.一种Alarm优化管理方法,其特征在于,包括步骤:S100当有Alarm需要删除时,根据所述Alarm的标识,遍历所述定时器集合列表中的每个定时器集合的Alarm列表,判断是否存在Alarm与待删除的Alarm匹配,若是,进入步骤S200,否则结束操作;S200记录所述定时器集合的标识,删除所述定时器集合中的匹配上的Alarm;S300根据所述定时器集合中剩下的Alarm的起始到时时间值和最晚到时时间值,获得所述定时器集合的新起始到时时间值和新最晚到时时间值,判断所述定时器集合的新起始到时时间值是否与原起始到时时间值一致,若是,则结束操作;否则进入步骤S400;S400保留所述定时器集合中剩余的Alarm,删除所述定时器集合,并将所述剩余的Alarm添加到定时器集合列表中的各定时器集合中。2.根据权利要求1所述的一种Alarm优化管理方法,其特征在于,所述步骤S300包括步骤:S310获取所述定时器集合剩下的Alarm各起始时间值和最晚到时时间值;S320取所述剩下Alarm的最大的起始时间值为所述定时器集合的新起始时间值,取所述剩下Alarm的最小的最晚到时时间值为所述定时器集合的新的最晚到时时间值;S330判断所述定时器集合的新的起始时间值是否与所述定时器集合原起始时间值一致?若是,则进入步骤S500;否则,进入步骤S400。3.根据权利要求1所述的一种Alarm优化管理方法,其特征在于,所述步骤S400包括步骤:S410构建待调整定时器集合标识列表,将所述定时器集合的标识添加到待调整定时器集合标识列表中;S420删除所述待调整定时器集合标识列表中相同的定时器集合标识;S430根据所述待调整定时器集合标识列表,按照所述定时器集合标识查找到对应的定时器集合;S440保留所述定时器集合中的所有Alarm,删除所述定时器集合;S450将所述保留的所有Alarm添加到所述定时器集合列表的定时器集合中。4.根据权利要求3所述的一种Alarm优化管理方法,其特征在于,所述步骤S450包括步骤:S451根据Alarm的添加规则,判断所述Alarm是否能添加到所述定时器集合列表的现有定时器集合中,若是,则进入步骤S452;否则,进入步骤S453;S452将所述Alarm添加至所述定时器集合中;S453根据所述Alarm的起始到时时间值与最晚到时时间值,建立一个新定时器集合,将所述Alarm添加至所述新定时器集合中,所述新定时器集合的起始到时时间即为所述Alarm的起始到时时间,所述新定时器集合的最晚到时时间即为所述Alarm的最晚到时时间;将所述新定时器集合添加至所述定时器集合列表中。5.根据权利要求4所述的一种Alarm优化管理方法,其特征在于,所述Alarm的添加规则为:当Alarm的起始到时时间值小于定时器集合的最晚到时时间值,且所述Alarm的最晚到时时间值大于所述定时器集合的起始到时时间值时,添加所述Alarm至所述定时器集合。6.根据权利要求1所述的一种Alarm优化管理方法,其特征在于,还包括步骤:S450获取各定时器集合的起始到时时间值,将起始到时时间最先到达的定时器集合的起始到时时间设置到底层驱动。7.一种Ala...

【专利技术属性】
技术研发人员:田泽丰
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1