CN114691343A - 轮询任务的执行方法及装置、计算机设备及可读存储介质 - Google Patents
轮询任务的执行方法及装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN114691343A CN114691343A CN202210618445.0A CN202210618445A CN114691343A CN 114691343 A CN114691343 A CN 114691343A CN 202210618445 A CN202210618445 A CN 202210618445A CN 114691343 A CN114691343 A CN 114691343A
- Authority
- CN
- China
- Prior art keywords
- polling task
- polling
- execution
- period
- android system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种基于安卓***的轮询任务的执行方法。轮询任务的执行方法包括:并行周期同为第一周期的定时器及主线程管理器,主线程管理器为安卓***的主线程管理器;判断第一执行间隔是否大于或等于第一周期,其中,第一执行间隔为安卓***的当前***时间戳与上一次执行轮询任务的时间戳之间的时间间隔;及若第一执行间隔大于或等于第一周期,执行轮询任务。本申请还公开了一种基于安卓***的轮询任务的执行装置、计算机设备及计算机可读存储介质。通过并行定时器及主线程管理器,利用安卓主线程优先级保证消息可以定时发送出来,定时器与主线程双向保证准时执行轮询任务,提升用户的使用体验。
Description
技术领域
本申请涉及任务调度技术领域,特别涉及一种基于安卓***的轮询任务的执行方法、基于安卓***的轮询任务的执行装置、计算机设备及计算机可读存储介质。
背景技术
目前Android端的主流App上,轮询任务都是通过手动注册和手动反注册来管理的,实现上采用定时器Timer或者ScheduledThreadPoolExecutor来触发检测并保证轮询任务的定时执行。然而,由于***CPU调度,采用定时器无法保证轮询任务准时执行,执行时间误差随着时间推移越来越大,降低了用户的使用体验。
发明内容
为解决上述背景技术中的至少一个技术问题,本申请实施方式提供了一种基于安卓***的轮询任务的执行方法、基于安卓***的轮询任务的执行装置、计算机设备及计算机可读存储介质。
本申请实施方式的基于安卓***的轮询任务的执行方法,包括:
并行周期同为第一周期的定时器及主线程管理器,所述主线程管理器为所述安卓***的主线程管理器;
判断第一执行间隔是否大于或等于所述第一周期,其中,所述第一执行间隔为所述安卓***的当前***时间戳与上一次执行所述轮询任务的时间戳之间的时间间隔;及
若所述第一执行间隔大于或等于所述第一周期,执行所述轮询任务。
在某些实施方式中,所述执行所述轮询任务包括:
判断所述轮询任务的队列中,子任务的个数是否大于零;
若是,循环取出所述轮询任务中的子任务,并判断所述子任务是否同时满足:第二周期大于或等于零,所述第二周期为所述子任务的执行周期;第二执行间隔大于或等于所述第二周期,所述第二执行间隔为当前***时间戳与上一次执行所述子任务的时间戳;及所述子任务的状态为有效;及
若是同时满足,启用线程池执行所述子任务。
在某些实施方式中,在执行所述轮询任务之前,所述轮询任务的执行方法还包括:
若所述第一执行间隔大于或等于所述第一周期,记录所述当前***时间戳为本次执行所述轮询任务的时间戳。
在某些实施方式中,所述轮询任务的执行方法还包括:
创建所述安卓***的生命周期回调实例,以监听页面的生命周期;及
在所述生命周期回调实例监听到所述页面进入到终端前台可见时,检测轮询服务的活跃状态,所述终端为所述安卓***的运行硬件环境。
在某些实施方式中,所述轮询任务的执行方法还包括:
获取所述安卓***的闹钟服务实例,创建周期为第三周期的定时广播;及
每隔所述第三周期唤醒应用的进程,并检测轮询服务的活跃状态。
在某些实施方式中,所述检测轮询服务的活跃状态,包括:判断所述第一执行间隔是否大于或等于预设间隔,所述预设间隔为所述第一周期的整数倍;及若是,则判断所述轮询服务处于停止状态;
所述轮询任务的执行方法还包括:在所述轮询服务处于停止状态时,并行周期同为所述第一周期的所述定时器及所述主线程管理器。
在某些实施方式中,所述轮询任务的执行方法还包括:
创建所述轮询任务中,依托页面生命周期的子任务的生命周期观察者;及
在观察到所述子任务关联的页面退出时,反注册所述子任务。
本申请实施方式的基于安卓***的轮询任务的执行装置包括:
并行模块,所述并行模块用于并行周期同为第一周期的定时器及主线程管理器,所述主线程管理器为所述安卓***的主线程管理器;
判断模块,所述判断模块用于判断第一执行间隔是否大于或等于所述第一周期,其中,所述第一执行间隔为所述安卓***的当前***时间戳与上一次执行所述轮询任务的时间戳之间的时间间隔;及
执行模块,所述执行模块用于若所述第一执行间隔大于或等于所述第一周期,执行所述轮询任务。
本申请实施方式的计算机设备包括:一个或多个处理器;存储器;及一个或多个计算机程序,其中,所述一个或多个计算机程序被存储在所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个计算程序配置用于:执行本申请任一实施方式所述的基于安卓***的轮询任务的执行方法。
本申请实施方式的非易失性计算机可读存储介质存储有计算机程序,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行本申请任一实施方式所述的基于安卓***的轮询任务的执行方法。
本申请实施方式的基于安卓***的轮询任务的执行方法、基于安卓***的轮询任务的执行装置、计算机设备及计算机可读存储介质中,通过并行定时器及主线程管理器,利用安卓主线程优先级保证消息可以定时发送出来,定时器与主线程双向保证准时执行轮询任务,提升了用户的使用体验。
本申请实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点可以从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1为本申请第一实施方式的基于安卓***的轮询任务的执行方法的流程示意图;
图2为本申请第二实施方式的基于安卓***的轮询任务的执行方法的流程示意图;
图3为本申请第三实施方式的基于安卓***的轮询任务的执行方法的流程示意图;
图4为本申请第四实施方式的基于安卓***的轮询任务的执行方法的流程示意图;
图5为本申请第五实施方式的基于安卓***的轮询任务的执行方法的流程示意图;
图6为本申请第六实施方式的基于安卓***的轮询任务的执行装置的模块示意图;
图7为本申请第七实施方式的基于安卓***的轮询任务的执行装置的模块示意图;
图8为本申请第八实施方式的基于安卓***的轮询任务的执行装置的模块示意图;
图9为本申请第九实施方式的基于安卓***的轮询任务的执行装置的模块示意图;
图10为本申请某些实施方式的计算机可读存储介质与处理器通信的示意图;
图11为本申请某些实施方式的计算机设备的示意图。
具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请的实施方式,而不能理解为对本申请的实施方式的限制。
请参阅图1,图1为本申请第一实施方式的基于安卓***的轮询任务的执行方法的流程示意图,本申请实施方式的基于安卓***的轮询任务的执行方法包括步骤:
01:并行周期同为第一周期的定时器及主线程管理器,主线程管理器为安卓***的主线程管理器;
02:判断第一执行间隔是否大于或等于第一周期,其中,第一执行间隔为安卓***的当前***时间戳与上一次执行轮询任务的时间戳之间的时间间隔;及
03:若第一执行间隔大于或等于第一周期,执行轮询任务。
本申请实施方式的基于安卓***的轮询任务的执行方法中,通过并行定时器及主线程管理器,利用安卓主线程优先级保证消息可以定时发送出来,定时器与主线程双向保证准时执行轮询任务,提升了用户的使用体验。
具体地,定时器Timer和主线程管理器Handler同为第一周期,主线程管理器Handler利用Android主线程优先级保证消息可以定时发送出来,误差在毫秒级别且在个位数以内。当判断第一执行间隔大于或等于第一周期,说明需要执行轮询任务,避免轮询任务被延迟执行,当然,当第一执行间隔小于第一周期,则不需要执行轮询任务,继续并行定时器Timer和主线程管理器Handler。
请参阅图2,图2为本申请第二实施方式的基于安卓***的轮询任务的执行方法的流程示意图,在某些实施方式中,步骤03中的执行轮询任务,包括步骤:
031:判断轮询任务的队列中,子任务的个数是否大于零;
032:若是,循环取出轮询任务中的子任务,并判断子任务是否同时满足:第二周期大于或等于零,第二周期为子任务的执行周期;第二执行间隔大于或等于第二周期,第二执行间隔为当前***时间戳与上一次执行子任务的时间戳;及子任务的状态为有效;及
033:若是同时满足,启用线程池执行子任务。
具体地,轮询任务列表中可能包括有多个子任务,当子任务的个数不大于零,即轮询任务列表中没有子任务时,说明此时并没有需要执行的轮询任务,可以继续实施步骤01。当子任务的个数大于零,则循环取出轮询任务中的子任务,同时,开始判断是否需要执行该被取出的子任务,判断子任务需要被执行或者不需要被执行后,再遍历其他的子任务。
在判断每个子任务是否需要被执行时,判断子任务的执行周期(即第二周期)是否大于零,同时判断距离子任务上一次执行的的第二执行间隔是否大于或等于第二周期,其中,第二周期为轮询任务在被构建时设置的周期,还同时判断子任务的状态是否为有效,以确保子任务没有被反注册等,在上述的判断结果都为是时,启用线程池执行子任务,防止线程泄漏。
请参阅图3,图3为本申请第三实施方式的基于安卓***的轮询任务的执行方法的流程示意图,在某些实施方式中,在执行轮询任务之前,轮询任务的执行方法还包括步骤04:若第一执行间隔大于或等于第一周期,记录当前***时间戳为本次执行轮询任务的时间戳。
由于第一执行间隔大于或等于第一周期,意味着将要开始执行轮询任务,故通过记录当前***时间戳为本次执行轮询任务的时间戳,以确保下次准确地计算第一执行间隔。
请参阅图4,图4为本申请第四实施方式的基于安卓***的轮询任务的执行方法的流程示意图,在某些实施方式中,轮询任务的执行方法还包括步骤:
05:创建安卓***的生命周期回调实例,以监听页面的生命周期;及
06:在生命周期回调实例监听到页面进入到终端前台可见时,检测轮询服务的活跃状态,终端为安卓***的运行硬件环境。
具体地,创建安卓***的生命周期回调实例ActivityLifecycleCallbacks,其监听到页面Activity进入到终端(例如手机、平板等)前台可见时,检测轮询服务器的活跃状态。通过创建ActivityLifecycleCallbacks监听,在页面回到前台时检查轮询任务是否正常按照周期执行,如果没有则立即重启唤醒轮询任务。
请继续参阅图4,在某些实施方式中,轮询任务的执行方法还包括步骤:
07:获取安卓***的闹钟服务实例,创建周期为第三周期的定时广播;及
08:每隔第三周期唤醒应用的进程,并检测轮询服务的活跃状态。
具体地,获取安卓***闹钟服务实例AlarmManager,创建周期为第三周期的定时广播,每隔第三周期唤醒App进程,检测轮询服务活跃状态,利用闹钟服务实例AlarmManager在第三周期唤醒***,提高App程序进程优先级,确保App进程不被***清除,从而保证轮询任务的可持续性。
通过实施步骤05、步骤06、步骤07、步骤08,利用闹钟服务实例AlarmManager和Activity生命周期回调双重能力保活和唤醒轮询任务执行的可持续性和稳定性,使得轮询任务具备保活能力,不会因为App切到后台或者终端休眠导致轮询任务不执行,不受***CPU调度影响,确保轮询任务可以准时按周期执行,轮询任务具备保活和重启校正的能力,确保App使用期间轮询任务可定时触达。
请继续参阅图4,在某些实施方式中,检测轮询服务的活跃状态包括步骤:
09:判断第一执行间隔是否大于或等于预设间隔,预设间隔为第一周期的整数倍;及
0a:若是,则判断轮询服务处于停止状态;
轮询任务的执行方法还包括步骤:在轮询服务处于停止状态时,实施步骤01:并行周期同为第一周期的定时器及主线程管理器。
具体地,诚如上述,第一执行间隔(即interval)计算方式为:当前***时间戳-上一次执行时间戳,如果interval>=Z * N(Z为正整数,不限于2,N为第一周期),则认为轮询服务处于dead状态(即停止状态),需要重置,然后重新从步骤01开始执行轮询任务的执行方法。
请参阅图5,图5为本申请第五实施方式的基于安卓***的轮询任务的执行方法的流程示意图,在某些实施方式中,轮询任务的执行方法还包括步骤:
0b:创建轮询任务中,依托页面生命周期的子任务的生命周期观察者;及
0c:在观察到子任务关联的页面退出时,反注册子任务。
具体地,当业务方创建轮询任务注册到轮询服务中时,将Activity或者Fragment的宿主Lifecycle对象传进来,对于依托页面生命周期的子任务,创建安卓***页面生命周期观察者LifecycleObserver,当被观察者页面Activity发生页面销毁回调事件onDestroy时,手动调用反注册方法unregisterPollTask来移除子任务实例,从而达到自动回收轮询任务的能力。故,基于页面级别的轮询任务可随着页面退出自动回收轮询任务,不会因为忘记反注册轮询任务而造成App程序内存泄露,方便使用者专注于轮询任务的创建和实现而不用关心轮询任务的管理。
请参阅图6,图6为本申请第六实施方式的基于安卓***的轮询任务的执行装置10的模块示意图,轮询任务的执行装置10包括并行模块11、判断模块12及执行模块13。并行模块11可用于实施步骤01,即,并行模块11可用于并行周期同为第一周期的定时器及主线程管理器,主线程管理器为安卓***的主线程管理器。判断模块12可用于实施步骤02,即,判断模块12可用于判断第一执行间隔是否大于或等于第一周期,其中,第一执行间隔为安卓***的当前***时间戳与上一次执行轮询任务的时间戳之间的时间间隔。执行模块13可用于实施步骤03,即,执行模块13可用于若第一执行间隔大于或等于第一周期,执行轮询任务。
请继续参阅图6,在某些实施方式中,执行模块13可用于实施步骤031、步骤032及步骤033,即,执行模块13可用于:判断轮询任务的队列中,子任务的个数是否大于零;若是,循环取出轮询任务中的子任务,并判断子任务是否同时满足:第二周期大于或等于零,第二周期为子任务的执行周期;第二执行间隔大于或等于第二周期,第二执行间隔为当前***时间戳与上一次执行子任务的时间戳;及子任务的状态为有效;及若是同时满足,启用线程池执行子任务。
请参阅图7,图7为本申请第七实施方式的基于安卓***的轮询任务的执行装置10的模块示意图,在某些实施方式中,轮询任务的执行装置10还包括记录模块14,记录模块14可用于实施步骤04,即,记录模块14可用于若第一执行间隔大于或等于第一周期,记录当前***时间戳为本次执行轮询任务的时间戳。
请参阅图8,图8为本申请第八实施方式的基于安卓***的轮询任务的执行装置10的模块示意图,在某些实施方式中,轮询任务的执行装置10还包括监听模块15及检测模块17。监听模块15可用于实施步骤05,即,监听模块15可用于创建安卓***的生命周期回调实例,以监听页面的生命周期。检测模块17可用于实施步骤06,即,检测模块17可用于在生命周期回调实例监听到页面进入到终端前台可见时,检测轮询服务的活跃状态。
请继续参阅图8,在某些实施方式中,轮询任务的执行装置10还包括广播模块16及检测模块17。广播模块16可用于实施步骤07,即,广播模块16可用于获取安卓***的闹钟服务实例,创建周期为第三周期的定时广播。检测模块17可用于实施步骤08,即,检测模块17可用于每隔第三周期唤醒应用的进程,并检测轮询服务的活跃状态。
请继续参阅图8,在某些实施方式中,检测模块17可用于实施步骤09及步骤0a,即,检测模块17可用于判断第一执行间隔是否大于或等于预设间隔,预设间隔为第一周期的整数倍;及若是,则判断轮询服务处于停止状态。并行模块11可用于在轮询服务处于停止状态时,并行周期同为第一周期的定时器及主线程管理器。
请参阅图9,图9为本申请第九实施方式的基于安卓***的轮询任务的执行装置10的模块示意图,在某些实施方式中,轮询任务的执行装置10还包括观察模块18及反注册模块19。观察模块18可用于实施步骤0b,即,观察模块18可用于创建轮询任务中,依托页面生命周期的子任务的生命周期观察者。反注册模块19可用于实施步骤0c,即,反注册模块19可用于在观察到子任务关联的页面退出时,反注册子任务。
需要说明的是,轮询任务的执行装置10实施本申请任一实施方式的轮询任务的执行方法时的实施细节及所达到的效果,可以参考上述对轮询任务的执行方法的描述,在此不再赘述。
此外,请参阅图10,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一实施方式所述的轮询任务的执行方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(RandomAccess Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
本申请方法实施例的内容均适用于本存储介质实施例,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同,具体请参见方法实施例中的说明,在此不再赘述。
此外,请参阅图11,本申请实施例还提供了一种计算机设备,本实施例所述的计算机设备可以是服务器、个人计算机以及网络设备等设备。所述计算机设备包括一个或多个处理器、存储器、以及一个或多个计算机程序。其中一个或多个计算机程序被存储在存储器中并被配置为由一个或多个处理器执行。一个或多个计算机程序配置用于执行以上任一实施方式所述的轮询任务的执行方法。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合所述实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型。
Claims (10)
1.一种基于安卓***的轮询任务的执行方法,其特征在于,所述轮询任务的执行方法包括:
并行周期同为第一周期的定时器及主线程管理器,所述主线程管理器为所述安卓***的主线程管理器;
判断第一执行间隔是否大于或等于所述第一周期,其中,所述第一执行间隔为所述安卓***的当前***时间戳与上一次执行所述轮询任务的时间戳之间的时间间隔;及
若所述第一执行间隔大于或等于所述第一周期,执行所述轮询任务。
2.根据权利要求1所述的轮询任务的执行方法,其特征在于,所述执行所述轮询任务包括:
判断所述轮询任务的队列中,子任务的个数是否大于零;
若是,循环取出所述轮询任务中的子任务,并判断所述子任务是否同时满足:第二周期大于或等于零,所述第二周期为所述子任务的执行周期;第二执行间隔大于或等于所述第二周期,所述第二执行间隔为当前***时间戳与上一次执行所述子任务的时间戳;及所述子任务的状态为有效;及
若是同时满足,启用线程池执行所述子任务。
3.根据权利要求1所述的轮询任务的执行方法,其特征在于,在执行所述轮询任务之前,所述轮询任务的执行方法还包括:
若所述第一执行间隔大于或等于所述第一周期,记录所述当前***时间戳为本次执行所述轮询任务的时间戳。
4. 根据权利要求1所述的轮询任务的执行方法,其特征在于,所述轮询任务的执行方法还包括:
创建所述安卓***的生命周期回调实例,以监听页面的生命周期;及
在所述生命周期回调实例监听到所述页面进入到终端前台可见时,检测轮询服务的活跃状态,所述终端为所述安卓***的运行硬件环境。
5. 根据权利要求4所述的轮询任务的执行方法,其特征在于,所述轮询任务的执行方法还包括:
获取所述安卓***的闹钟服务实例,创建周期为第三周期的定时广播;及
每隔所述第三周期唤醒应用的进程,并检测轮询服务的活跃状态。
6.根据权利要求5所述的轮询任务的执行方法,其特征在于,所述检测轮询服务的活跃状态,包括:判断所述第一执行间隔是否大于或等于预设间隔,所述预设间隔为所述第一周期的整数倍;及若是,则判断所述轮询服务处于停止状态;
所述轮询任务的执行方法还包括:在所述轮询服务处于停止状态时,并行周期同为所述第一周期的所述定时器及所述主线程管理器。
7. 根据权利要求1所述的轮询任务的执行方法,其特征在于,所述轮询任务的执行方法还包括:
创建所述轮询任务中,依托页面生命周期的子任务的生命周期观察者;及
在观察到所述子任务关联的页面退出时,反注册所述子任务。
8.一种基于安卓***的轮询任务的执行装置,其特征在于,所述轮询任务的执行装置包括:
并行模块,所述并行模块用于并行周期同为第一周期的定时器及主线程管理器,所述主线程管理器为所述安卓***的主线程管理器;
判断模块,所述判断模块用于判断第一执行间隔是否大于或等于所述第一周期,其中,所述第一执行间隔为所述安卓***的当前***时间戳与上一次执行所述轮询任务的时间戳之间的时间间隔;及
执行模块,所述执行模块用于若所述第一执行间隔大于或等于所述第一周期,执行所述轮询任务。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器;及
一个或多个计算机程序,其中,所述一个或多个计算机程序被存储在所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个计算程序配置用于:执行权利要求1至7任意一项所述的轮询任务的执行方法。
10.一种存储有计算机程序的非易失性计算机可读存储介质,其特征在于,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1至7任意一项所述的轮询任务的执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210618445.0A CN114691343B (zh) | 2022-06-02 | 2022-06-02 | 轮询任务的执行方法及装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210618445.0A CN114691343B (zh) | 2022-06-02 | 2022-06-02 | 轮询任务的执行方法及装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114691343A true CN114691343A (zh) | 2022-07-01 |
CN114691343B CN114691343B (zh) | 2022-08-26 |
Family
ID=82131280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210618445.0A Active CN114691343B (zh) | 2022-06-02 | 2022-06-02 | 轮询任务的执行方法及装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691343B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200311A (ja) * | 1994-01-07 | 1995-08-04 | Fuji Facom Corp | 計算機システムのインターバル処理装置 |
CN105630492A (zh) * | 2015-12-21 | 2016-06-01 | 北京奇虎科技有限公司 | 一种应用的周期任务封装的方法以及装置 |
CN106775620A (zh) * | 2016-11-14 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种定时方法及装置 |
CN109445954A (zh) * | 2018-09-11 | 2019-03-08 | 百富计算机技术(深圳)有限公司 | 一种定时任务的执行方法、终端设备及存储介质 |
CN112651040A (zh) * | 2020-12-15 | 2021-04-13 | ***股份有限公司 | 权限申请方法、组件、装置及计算机可读存储介质 |
-
2022
- 2022-06-02 CN CN202210618445.0A patent/CN114691343B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200311A (ja) * | 1994-01-07 | 1995-08-04 | Fuji Facom Corp | 計算機システムのインターバル処理装置 |
CN105630492A (zh) * | 2015-12-21 | 2016-06-01 | 北京奇虎科技有限公司 | 一种应用的周期任务封装的方法以及装置 |
CN106775620A (zh) * | 2016-11-14 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种定时方法及装置 |
CN109445954A (zh) * | 2018-09-11 | 2019-03-08 | 百富计算机技术(深圳)有限公司 | 一种定时任务的执行方法、终端设备及存储介质 |
CN112651040A (zh) * | 2020-12-15 | 2021-04-13 | ***股份有限公司 | 权限申请方法、组件、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114691343B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2977854B1 (en) | Method, apparatus, and user terminal for removing malicious power consuming application | |
US10075409B2 (en) | Terminal and application synchronization method therefor | |
CN102200942A (zh) | 基于云计算的应用程序行为监测方法及云端服务器 | |
CN110109741B (zh) | 循环任务的管理方法、装置、电子设备及存储介质 | |
CN110768873B (zh) | 分布式心跳检测方法、***、装置和计算机设备 | |
WO2017219834A1 (zh) | 监控方法、装置及看门狗*** | |
EP3671461A1 (en) | Systems and methods of monitoring software application processes | |
CN107436672B (zh) | 一种应用的处理方法及终端 | |
US20170160778A1 (en) | Method and device for monitoring power-consuming applications, user terminal, computer program and storage medium | |
CN112817772B (zh) | 一种数据通信方法、装置、设备及存储介质 | |
CN111625322B (zh) | 数据处理方法、***及设备 | |
CN106775620B (zh) | 一种定时方法及装置 | |
WO2022095862A1 (zh) | 调整线程优先级的方法、终端及计算机可读存储介质 | |
CN114691343B (zh) | 轮询任务的执行方法及装置、计算机设备及可读存储介质 | |
CN111078441A (zh) | 一种***运行状态监测方法、装置及电子设备 | |
CN113535344A (zh) | 网络数据处理方法和装置、服务器及存储介质 | |
CN112987904A (zh) | 一种心跳控制方法和装置 | |
CN110402574B (zh) | 在不可用时间段期间运行装置的方法 | |
CN112463348B (zh) | 一种定时任务处理方法及装置 | |
US8607232B2 (en) | Identifying a transient thread and excluding the transient thread from a processor load calculation | |
EP3929737A1 (en) | Application state control method apparatus, and terminal and computer-readable storage medium | |
CN114780296A (zh) | 数据库集群的数据备份方法、装置及*** | |
EP3916549A1 (en) | Broadcast control method, terminal and computer readable storage medium | |
CN111796949A (zh) | 通讯任务处理方法、装置、设备及存储介质 | |
CN117593172B (zh) | 进程管理方法、装置、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |