定时器设置方法、存储介质、电子设备及系统技术方案

技术编号:21627303 阅读:30 留言:0更新日期:2019-07-17 10:35
本发明专利技术公开了一种定时器设置方法、存储介质、电子设备及系统,涉及应用开发领域,包括定义一public类型的静态函数,当所述静态函数被执行时返回定时器;在定时器内创建消息队列和执行线程,所述消息队列用于存储触发消息,且每个触发消息均包括定时时间,所述执行线程用于执行到达定时时间后的任务线程;当到达触发消息的超时时间时,执行线程执行任务线程。本发明专利技术能够有效避免因定时器资源管理不当或者遗漏就引起的内存泄漏问题。

Timer setting method, storage medium, electronic equipment and system

【技术实现步骤摘要】
定时器设置方法、存储介质、电子设备及系统
本专利技术涉及应用开发领域,具体涉及一种定时器设置方法、存储介质、电子设备及系统。
技术介绍
在Android系统的应用开发过程中我们会使用到定时器功能,且定时器是需要被应用经常所使用到的组件,例如在直播客户端中通过定时器,当点击投屏界面中的任意按钮后开始计时,超过10秒没有操作过任意按钮就自动隐藏投屏设置界面,如果在10秒内又触发了任意其他的按钮则需要重置计时并从当前这次的按钮点击开始计时进行10秒倒计时,每次重新开始倒计时10s其实都是对定时器的重置操作。因此定时器在使用的过程中需要频繁的进行开启和关闭等操作,并且在开启定时器的时候需要申请定时器资源,在关闭定时器的时候需要释放定时器资源,若对资源管理不当或者遗漏就极易引起内存泄漏的风险。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种定时器设置方法,能够有效避免因定时器资源管理不当或者遗漏就引起的内存泄漏问题。为达到以上目的,本专利技术采取的技术方案是,包括:定义一public类型的静态函数,当所述静态函数被执行时返回定时器;在定时器内创建消息队列和执行线程,所述消息队列用于存储触发消息,且每个触发消息均包括定时时间,所述执行线程用于执行到达定时时间后的任务线程;当到达触发消息的超时时间时,执行线程执行任务线程。在上述技术方案的基础上,所述消息队列内存储的触发消息为多个;每个开启定时器的触发消息均对应有待处理任务;当消息队列内触发消息的定时时间到达时,执行线程执行该触发消息对应待处理任务的任务线程,进行待处理任务的执行。在上述技术方案的基础上,所述消息队列为BlockingQueue数据结构;所述消息队列中的触发消息按照定时时间的长短进行排列,且定时时间短的触发消息排于定时时间长的触发消息之前以被先执行。在上述技术方案的基础上,当需同时执行多个任务线程时,使用预设了线程数的线程池进行多个任务线程的同时执行。在上述技术方案的基础上,每个触发消息均包括ID号;当需要取消消息队列内的触发消息时,依据该条触发消息的ID号在消息队列内找出并移除。本专利技术还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的方法。本专利技术还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的方法。本专利技术还提供一种定时器设置系统,包括:设置模块,其用于定义一public类型的静态函数,且当所述静态函数被执行时返回定时器;创建模块,其用于在定时器内创建消息队列和执行线程,所述消息队列用于存储触发消息,且每个触发消息均包括定时时间,所述执行线程用于执行到达定时时间后的任务线程;执行模块,其用于当到达触发消息的超时时间时,使执行线程执行任务线程。在上述技术方案的基础上,所述消息队列内存储的触发消息为多个;每个开启定时器的触发消息均对应有待处理任务;当消息队列内触发消息的定时时间到达时,执行线程执行该触发消息对应待处理任务的任务线程,进行待处理任务的执行。在上述技术方案的基础上,所述消息队列为BlockingQueue数据结构;所述消息队列中的触发消息按照定时时间的长短进行排列。与现有技术相比,本专利技术的优点在于:通过创建public类型的静态函数实现对定期器的调用,方便调用者对定时器的调用,且定时器内创建有消息队列,方便对定时任务的触发消息进行存储,保证定时任务触发的有序进行,同时也保证了定时任务的重置和取消效率,有效避免因定时器资源管理不当或者遗漏就引起的内存泄漏问题。附图说明图1为本专利技术实施例中一种定时器设置方法的流程图;图2为本专利技术实施例中一种电子设备的结构示意图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例提供一种定时器设置方法,用于Android系统应用的开发,包括:S1:定义一public类型的静态函数,当静态函数被执行时返回定时器。即将定时器设计成一个静态(static)类的对象,静态对象具有被全部其它对象获取的特点,方便调用者调用定时器,因此定义一个全局可以获取的静态函数,当静态函数被执行时返回定时器,方便调用者对定时的获取。本专利技术实施例的静态函数为:publicstaticDYTimergetDYTimer()其中,public为该静态函数的类型,public类型的函数表示是可以被其他类进行调用的;static为修饰符,用于表示此为静态函数,既无需通过实例对象,而是直接通过类名来直接调用的属性;DYTimer是函数的返回值,表示该函数执行后会返回一个DYTimer对象,即返回定时器对象。本专利技术实施例的静态函数在被执行时首先判断DYTimer对象是否为空,若为空则直接调用DYTimer的构造函数来得到DYTimer对象,即得到定时器,若不为空则直接将DYTimer对象返回,以此来保证每次执行静态函数时均能得到定时器,方便进行后续的操作。S2:在定时器内创建消息队列和执行线程,消息队列用于存储触发消息,且每个触发消息均包括定时时间,执行线程用于执行到达定时时间后的任务线程,即到时触发消息的定时时间后,执行线程执行任务线程。消息队列内存储的触发消息为多个,每个开启定时器的触发消息均对应有待处理任务,待处理任务为当到达触发消息的定时时间后,需进行的操作,如开始视频播放等等。当消息队列内触发消息的定时时间到达时,执行线程执行该触发消息对应待处理任务的任务线程,从而任务线程开始进行待处理任务的执行。消息队列为BlockingQueue(阻塞队列)数据结构,采用BlockingQueue数据结构能够保证消息的同步性,保证各触发消息在消息队列中的先进后出。且BlockingQueue数据结构是线程安全的,当在多线程执行的情况下同一时刻有且仅有一个线程是能够执行的,这样便能保证消息队列中触发消息对应任务线程触发执行的有序性。消息队列中的触发消息按照定时时间的长短进行排列,且定时时间短的触发消息排于定时时间长的触发消息之前以被先执行。消息队列中的触发消息为多个,每当有一定时设置到消息队列中时,即每当有一个触发消息加入消息队列时,则均需要对消息队列中的触发消息进行重新排序,排序规则即为按照每个触发消息的定时时间长短进行排列,定时时间短的触发消息排于定时时间长的触发消息之前,保证定时时间短的任务先被触发执行,定时时间长的任务后被触发执行。对于触发消息在消息队列中具体的排序操作,当有一个新触发消息时,首先在消息队列中间的触发消息来与该触发消息的定时时间进行比较,若消息队列中间的触发消息定时时间大于该触发消息的定时时间,则继续选择前方定时时间小的触发消息进行比较,依照此方法直至找出该触发消息的位置,并将该触发消息插入消息队列中,且该触发消息的定时时间大于相邻前方的触发消息,小于相邻后方的触发消息。通过消息队列实现对调用了定时器的触发消息进行缓存,方便管理。当需同时执行多个任务线程时,使用预设了线程数的线程池进行多个任务线程的同时执行。应用中的定时器一般为多个,因此可能存在多个定时器同时使用的情况,且每个定期器的执行线程执行任务线程,由于待处理任务的执行存在时间,因此会存在多个任务线程同时执本文档来自技高网...

【技术保护点】
1.一种定时器设置方法,用于Android系统应用的开发,其特征在于,包括:定义一public类型的静态函数,当所述静态函数被执行时返回定时器;在定时器内创建消息队列和执行线程,所述消息队列用于存储触发消息,且每个触发消息均包括定时时间,所述执行线程用于执行到达定时时间后的任务线程;当到达触发消息的超时时间时,执行线程执行任务线程。

【技术特征摘要】
1.一种定时器设置方法,用于Android系统应用的开发,其特征在于,包括:定义一public类型的静态函数,当所述静态函数被执行时返回定时器;在定时器内创建消息队列和执行线程,所述消息队列用于存储触发消息,且每个触发消息均包括定时时间,所述执行线程用于执行到达定时时间后的任务线程;当到达触发消息的超时时间时,执行线程执行任务线程。2.如权利要求1所述的一种定时器设置方法,其特征在于:所述消息队列内存储的触发消息为多个;每个开启定时器的触发消息均对应有待处理任务;当消息队列内触发消息的定时时间到达时,执行线程执行该触发消息对应待处理任务的任务线程,进行待处理任务的执行。3.如权利要求2所述的一种定时器设置方法,其特征在于:所述消息队列为BlockingQueue数据结构;所述消息队列中的触发消息按照定时时间的长短进行排列,且定时时间短的触发消息排于定时时间长的触发消息之前以被先执行。4.如权利要求2所述的一种定时器设置方法,其特征在于:当需同时执行多个任务线程时,使用预设了线程数的线程池进行多个任务线程的同时执行。5.如权利要求2所述的一种定时器设置方法,其特征在于:每个触发消息均包括ID号;当需要取消消息队列内的触发消息时,依据该条触发消息的I...

【专利技术属性】
技术研发人员:张磊张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1