一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

计时器的操作方法、装置、设备及存储介质与流程

2022-12-13 20:49:29 来源:中国专利 TAG:


1.本发明涉及移动应用技术领域,具体涉及一种计时器的操作方法、装置、设备及存储介质。


背景技术:

2.在移动终端的操作系统中,常常有定时的需求。一般通过使用计时器,来满足定时的需求。
3.在计时器的使用过程中,需要手动停止计时器,并释放计时器。若不对计时器进行手动停止,则计时器会一直循环执行,从而导致操作系统故障。


技术实现要素:

4.本技术提供了一种计时器的操作方法、装置、设备及存储介质,该技术方案如下。
5.一方面,提供了一种计时器的操作方法,所述方法包括:
6.获取计时器的配置信息,所述配置信息中包括:追踪目标;
7.基于所述配置信息,创建所述计时器;
8.建立所述计时器与所述追踪目标之间的跟随停止关系,所述跟随停止关系用于指示所述计时器的释放,跟随所述追踪目标的释放;
9.在所述追踪目标被释放时,基于所述跟随停止关系,停止并释放所述计时器。
10.又一方面,提供了一种计时器的操作装置,所述装置包括:
11.配置信息获取模块,用于获取计时器的配置信息,所述配置信息中包括:追踪目标;
12.计时器创建模块,用于基于所述配置信息,创建所述计时器;
13.跟随停止关系建立模块,用于建立所述计时器与所述追踪目标之间的跟随停止关系,所述跟随停止关系用于指示所述计时器的释放,跟随所述追踪目标的释放;
14.计时器释放模块,用于在所述追踪目标被释放时,基于所述跟随停止关系,停止并释放所述计时器。
15.在一种可能的实现方式中,所述跟随停止关系建立模块,用于:
16.建立释放包,将所述计时器添加到所述释放包内;
17.向所述追踪目标注入所述释放包,以使得所述计时器与所述追踪目标之间具备所述跟随停止关系。
18.在一种可能的实现方式中,所述计时器释放模块,用于:
19.在所述追踪目标被释放时,基于自动引用计数(automatic reference counting,arc)技术,自动释放注入于所述追踪目标内的所述释放包;
20.在所述释放包被释放的情况下,停止并释放所述释放包内的所述计时器。
21.在一种可能的实现方式中,所述配置信息中还包括:动态周期代码块;
22.所述装置还包括:触发间隔更新模块;
23.所述触发间隔更新模块,用于在所述计时器触发时,通过所述动态周期代码块获取更新后的触发间隔;基于所述更新后的触发间隔,再次触发所述计时器。
24.在一种可能的实现方式中,所述装置还包括:对象绑定模块;
25.所述对象绑定模块,用于建立对象与所述计时器之间的映射关系;基于所述映射关系查询所述计时器。
26.在一种可能的实现方式中,所述对象绑定模块,用于将所述对象转化成字符串;将所述计时器存储到哈希表中,且所述计时器在所述哈希表中的关键字为所述字符串。
27.在一种可能的实现方式中,所述对象绑定模块,用于获取所述对象的内存地址;将所述内存地址作为转化后的所述字符串。
28.再一方面,提供了一种计算机设备,所述计算机设备中包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的计时器的操作方法。
29.再一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的计时器的操作方法。
30.再一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的计时器的操作方法。
31.本技术提供的技术方案可以包括以下有益效果:
32.计时器的配置信息中可设置追踪目标,当追踪目标被释放时,基于计时器与追踪目标之间的跟随停止关系,计时器将会自动停止并释放,无需对计时器进行手动操作即可停止该计时器,从而避免计时器循环执行而导致的内存泄露。
附图说明
33.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1是根据一示例性实施例示出的一种计时器的操作方法的方法流程图。
35.图2是根据一示例性实施例示出的一种计时器的操作方法的方法流程图。
36.图3是根据一示例性实施例示出的一种跟随停止功能对应的流程的方法流程图。
37.图4是根据一示例性实施例示出的一种计时器的操作方法的方法流程图。
38.图5是根据一示例性实施例示出的一种动态周期功能对应的流程的方法流程图。
39.图6是根据一示例性实施例示出的一种计时器的操作方法的方法流程图。
40.图7是根据一示例性实施例示出的一种对象绑定功能对应的流程的方法流程图。
41.图8是根据一示例性实施例示出的一种计时器的架构的示意图。
42.图9是根据一示例性实施例示出的一种计时器的操作装置的结构方框图。
43.图10是根据一示例性实施例提供的一种计算机设备的示意图。
具体实施方式
44.下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
45.应理解,在本技术的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,a指示b,可以表示a直接指示b,例如b可以通过a获取;也可以表示a间接指示b,例如a指示c,b可以通过c获取;还可以表示a和b之间具有关联关系。
46.在本技术实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
47.本技术实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本技术对于其具体的实现方式不做限定。
48.图1是根据一示例性实施例示出的计时器的操作方法的方法流程图。该方法可以由计算机设备来执行。如图1所示,该计时器的操作方法可以包括如下步骤:
49.步骤110:获取计时器的配置信息,配置信息中包括:追踪目标。
50.计时器的配置信息是对计算器的各项参数进行配置的信息。
51.其中,配置信息中包括为该计时器设置的追踪目标,追踪目标指的是计时器跟随停止的对象。例如,追踪目标记为_lifetimetracker。
52.可选的,配置信息中还包括如下参数中的至少一种:触发时间_firedate、静态周期_interval、动态周期_dynamicinterval、是否重复_repeats以及触发事件block。
53.步骤120:基于配置信息,创建计时器。
54.在获取计时器的配置信息后,利用设置好的配置信息,创建计时器。
55.在本技术实施例中,创建的计时器可以是基于中央调度(grand central dispatch,gcd)技术的一种计时器。比如:dispatch source timer属于gcd技术,创建的计时器是对dispatch source timer进行封装后的一种计时器。
56.步骤130:建立计时器与追踪目标之间的跟随停止关系。
57.在创建好计时器之后,建立计时器与追踪目标之间的跟随停止关系。其中,计时器与追踪目标之间的跟随停止关系指的是:计时器的释放或停止,跟随追踪目标的释放或停止。
58.步骤140:在追踪目标被释放时,基于跟随停止关系,停止并释放计时器。
59.当追踪目标被释放时,基于跟随停止关系,计时器也会自动停止并释放。
60.综上所述,本实施例提供的计时器的操作方法,计时器的配置信息中可设置追踪目标,当追踪目标被释放时,基于计时器与追踪目标之间的跟随停止关系,计时器将会自动停止并释放,无需对计时器进行手动操作即可停止该计时器,从而避免计时器循环执行而导致的内存泄露。
61.在示意性实施例中,通过定义的释放包,建立计时器与追踪目标之间的跟随停止关系。
62.图2是根据一示例性实施例示出的计时器的操作方法的方法流程图。该方法可以由计算机设备来执行。如图2所示,该计时器的操作方法可以包括如下步骤:
63.步骤210:获取计时器的配置信息,配置信息中包括:追踪目标。
64.步骤220:基于配置信息,创建计时器。
65.步骤230:建立释放包,将计时器添加到释放包内。
66.在一种可能的实现方式中,定义一个名为释放包的objective-c的类,且该释放包中可添加计时器。
67.步骤240:向追踪目标注入释放包,以使得计时器与追踪目标之间具备跟随停止关系。
68.在释放包中添加计时器,并向追踪目标注入释放包,从而建立追踪目标与计时器之间的跟随停止关系。
69.在一种可能的实现方式中,通过运行时(runtime)技术,向追踪目标注入强引用的释放包。
70.步骤250:在追踪目标被释放时,基于跟随停止关系,停止并释放计时器。
71.在一种可能的实现方式中,在追踪目标被释放时,基于arc技术,自动释放注入于追踪目标内的释放包;在释放包被释放的情况下,停止并释放释放包内的计时器。
72.其中,arc技术是一种内存管理机制,其规则就是:当一个对象的引用计数为0时,就会被释放掉。因此,在追踪目标被释放时,释放包的引用计数变为0,随之被自动释放。
73.在一种可能的实现方式中,停止并释放释放包内的计时器是基于释放包的dealloc函数来实现的。
74.其中,dealloc函数是用于内存的释放的一种函数。
75.示例性的,结合参考图3,对于计时器的跟随停止功能,包括如下流程:首先将计时器添加到释放包内,再给追踪目标注入释放包,在追踪目标释放时,从而释放释放包,最后在释放包的dealloc内停止计时器。
76.综上所述,本实施例提供的计时器的操作方法,通过定义释放包,在释放包中添加计时器,并向追踪目标注入释放包,从而建立追踪目标与计时器之间的跟随停止关系,保证了计时器的跟随停止功能的实现。
77.在示意性实施例中,为计时器引入了动态周期的功能。
78.图4是根据一示例性实施例示出的计时器的操作方法的方法流程图。该方法可以由计算机设备来执行。如图4所示,该计时器的操作方法可以包括如下步骤:
79.步骤410:获取计时器的配置信息,配置信息中包括:追踪目标、动态周期代码块。
80.其中,动态周期代码块是用于为计时器配置动态周期的一个代码块。
81.步骤420:基于配置信息,创建计时器。
82.步骤430:建立计时器与追踪目标之间的跟随停止关系。
83.其中,跟随停止关系用于指示计时器的释放,跟随追踪目标的释放。
84.步骤440:在追踪目标被释放时,基于跟随停止关系,停止并释放计时器。
85.步骤450:在计时器触发时,通过动态周期代码块获取更新后的触发间隔。
86.步骤460:基于更新后的触发间隔,再次触发计时器。
87.在每一次计时器触发时,计时器通过动态周期代码块获取距离下一次计时器触发
的触发间隔,从而动态地更新计时器的触发间隔。
88.应理解,基于动态周期的功能,可自定义计时器每一次触发的触发间隔,在心跳检测、网络超时重连等场景下,可以根据当前的触发次数,改变再次触发计时器的触发间隔。
89.例如,在网络超时重连的场景,基于本技术所提供的动态周期的功能,可以设置每隔1、3、5、7、9秒重新进行网络请求。
90.示例性的,结合参考图5,对于计时器的动态周期功能,包括如下流程:新建计时器;通过动态周期block(即动态周期代码块)计算计时器的触发时间;根据计时器当前的触发次数,判断是否需要释放计时器;若计时器的触发次数达到次数限制,则释放计时器;若计时器的触发次数未达到次数限制,则设置触发时间;基于设置的触发时间,再次触发计时器。
91.综上所述,本实施例提供的计时器的操作方法,为计时器引入了动态周期的功能,可以自定义计时器每一次触发的触发间隔,相较于现有技术中计时器只能设置固定的触发间隔的技术方案,可以更好地支持需要触发间隔需要动态变更的场景。
92.在示意性实施例中,为计时器引入了对象绑定的功能。
93.图6是根据一示例性实施例示出的计时器的操作方法的方法流程图。该方法可以由计算机设备来执行。如图6所示,该计时器的操作方法可以包括如下步骤:
94.步骤610:获取计时器的配置信息,配置信息中包括:追踪目标。
95.步骤620:基于配置信息,创建计时器。
96.步骤630:建立计时器与追踪目标之间的跟随停止关系。
97.其中,跟随停止关系用于指示计时器的释放,跟随追踪目标的释放。
98.步骤640:在追踪目标被释放时,基于跟随停止关系,停止并释放计时器。
99.步骤650:建立对象与计时器之间的映射关系。
100.在一种可能的实现方式中,将对象转化成字符串;将计时器存储到哈希表中,且计时器在哈希表中的关键字(key)为字符串,从而建立对象与计时器之间的映射关系。
101.在一种可能的实现方式中,获取对象的内存地址;将内存地址作为转化后的字符串,从而将对象转化成字符串。
102.也即,将对象的内存地址作为关键字,用哈希表把关键字映射到唯一的计时器,从而实现对象绑定计时器的功能。
103.步骤660:基于映射关系查询计时器。
104.由于对象绑定计时器,在需要进行计时器查询时,支持以对象作为参数,基于映射关系,查找与该对象进行绑定的计时器。
105.在本技术实施例中,由于为计时器引入了对象绑定的功能,使得对象无需持有该计时器。由于对象持有计时器时,需要在对象的代码实现中对计时器进行申明,代码量较大,因此,对对象与计时器之间的关系进行修改,将对象绑定计时器,可以减少开发时的代码量。
106.示例性的,结合参考图7,对于计时器的对象绑定功能,包括如下流程:通过对象操作计时器;判断是否创建计时器;若在创建计时器,则将对象的内存地址作为key,用哈希表映射到计时器,再判断计时器是否终止,若计时器已终止,则在哈希表中删除记录;若不是在创建计时器,则将对象的内存地址作为key,从哈希表中查找计时器,判断哈希表中是否
存在计时器,若存在计时器,则操作计时器,再判断计时器是否终止,若计时器已终止,则在哈希表中删除记录。
107.综上所述,本实施例提供的计时器的操作方法,为计时器引入了对象绑定的功能,使得对象无需持有该计时器,可以减少开发时的代码量。
108.从上文实施例可知,基于本技术提供的技术方案,计时器可以支持如下功能:跟随停止、对象绑定、动态周期。
109.对于本技术实施例所示的计时器,其架构可以如图8所示,包括:管理模块、配置模块、计时器模块和释放模块。对各个模块的说明如下:
110.管理模块提供计时器的相关功能,并管理计时器的生命周期,是对外的唯一接口;
111.配置模块提供计时器所支持的相关配置;
112.计时器模块实现计时器的相关功能;
113.释放模块实现计时器的跟随停止功能。
114.需要说明的是,上述方法实施例可以单独实施例,也可以组合实施,本技术对此不加以限制。
115.图9是根据一示例性实施例示出的一种计时器的操作装置的结构方框图。所述装置包括:
116.配置信息获取模块901,用于获取计时器的配置信息,所述配置信息中包括:追踪目标;
117.计时器创建模块902,用于基于所述配置信息,创建所述计时器;
118.跟随停止关系建立模块903,用于建立所述计时器与所述追踪目标之间的跟随停止关系,所述跟随停止关系用于指示所述计时器的释放,跟随所述追踪目标的释放;
119.计时器释放模块904,用于在所述追踪目标被释放时,基于所述跟随停止关系,停止并释放所述计时器。
120.在一种可能的实现方式中,所述跟随停止关系建立模块903,用于:
121.建立释放包,将所述计时器添加到所述释放包内;
122.向所述追踪目标注入所述释放包,以使得所述计时器与所述追踪目标之间具备所述跟随停止关系。
123.在一种可能的实现方式中,所述计时器释放模块904,用于:
124.在所述追踪目标被释放时,基于自动引用计数arc技术,自动释放注入于所述追踪目标内的所述释放包;
125.在所述释放包被释放的情况下,停止并释放所述释放包内的所述计时器。
126.在一种可能的实现方式中,所述配置信息中还包括:动态周期代码块;
127.所述装置还包括:触发间隔更新模块;
128.所述触发间隔更新模块,用于在所述计时器触发时,通过所述动态周期代码块获取更新后的触发间隔;基于所述更新后的触发间隔,再次触发所述计时器。
129.在一种可能的实现方式中,所述装置还包括:对象绑定模块;
130.所述对象绑定模块,用于建立对象与所述计时器之间的映射关系;基于所述映射关系查询所述计时器。
131.在一种可能的实现方式中,所述对象绑定模块,用于将所述对象转化成字符串;将
所述计时器存储到哈希表中,且所述计时器在所述哈希表中的关键字为所述字符串。
132.在一种可能的实现方式中,所述对象绑定模块,用于获取所述对象的内存地址;将所述内存地址作为转化后的所述字符串。
133.需要说明的是:上述实施例提供的计时器的操作装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
134.请参阅图10,其是根据本技术一示例性实施例提供的一种计算机设备的示意图,所述控制器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的计时器的操作方法。
135.其中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
136.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
137.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
138.在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
139.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。
140.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献