CN115883719B - 通知处理方法和通知处理装置 - Google Patents
通知处理方法和通知处理装置 Download PDFInfo
- Publication number
- CN115883719B CN115883719B CN202310048899.3A CN202310048899A CN115883719B CN 115883719 B CN115883719 B CN 115883719B CN 202310048899 A CN202310048899 A CN 202310048899A CN 115883719 B CN115883719 B CN 115883719B
- Authority
- CN
- China
- Prior art keywords
- timer
- application
- resources
- notification message
- notification
- 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.)
- Active
Links
Landscapes
- Telephone Function (AREA)
Abstract
本申请提供了一种通知处理方法和通知处理装置,可以应用于包括第一应用程序的终端设备。本申请提供的方法包括:终端设备检测到第一应用程序的第一通知消息,第一通知消息包括第一信息,第一信息用于申请定时器资源;若已分配的定时器资源的数量大于或等于第一阈值,终端设备拒绝为第一通知消息分配定时器资源。本申请提供的方法通过拒绝为通知信息分配定时器资源,可以避免定时器资源占用超出限制,有利于降低终端设备异常重启的概率。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种通知处理方法和通知处理装置。
背景技术
随着应用程序的快速发展,越来越多的应用程序成为用户日常生活中不可或缺的一部分,例如,视频类应用程序、地图类应用程序以及音乐类应用程序等。目前,各种应用程序的通知消息过多时,会导致终端设备异常重启,影响用户的使用体验。
发明内容
本申请提供一种通知处理方法和通知处理装置,有利于降低终端设备异常重启的概率。
第一方面,提供了一种通知处理方法,应用于包括第一应用程序的终端设备,方法包括:终端设备检测到第一应用程序的第一通知消息,第一通知消息包括第一信息,第一信息用于申请定时器资源;若已分配的定时器资源的数量大于或等于第一阈值,终端设备拒绝为第一通知消息分配定时器资源。
第一应用程序可以是终端设备安装的任一个或者多个应用程序。例如,第一应用程序可以是闹钟、日历、地图、行程等应用程序中的至少一个应用程序。
终端设备可以对分配的定时器资源进行记录,并统计已分配的定时器资源的数量,当检测到第一应用程序的通知消息,且该通知消息申请定时器资源,终端设备可以查询当前已分配的定时器资源的数量。本申请可以用字母X表示已分配的定时器资源的数量。但本申请并不限于此。
若已分配的定时器资源的数量大于或等于第一阈值,可以说明当前定时器资源被大量占用,终端设备可以拒绝为第一通知消息分配定时器资源。
本申请提供的通知处理方法,若第一应用程序的第一通知消息申请定时器资源,且终端设备检测到当前已分配的定时器资源的数量大于或等于第一阈值,终端设备可以拒绝为该通知消息分配定时器资源,避免通知消息占用过多的定时器资源,有利于降低终端设备分配定时器资源超出限制的概率,进而有利于降低终端设备异常重启的概率,提高用户体验。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:终端设备统计第一应用程序已占用的定时器资源的数量;其中,终端设备拒绝为第一通知消息分配定时器资源,包括:若第一应用程序已占用的定时器资源的数量大于或等于第二阈值,终端设备拒绝为第一通知消息分配定时器资源。
在已分配的定时器资源的数量大于或等于第一阈值的情况下,不同应用程序占用的定时器资源不同,若对任意应用程序的申请定时器资源通知消息均拒绝分配定时器资源,可能会造成定时器资源在不同应用程序中分布不均的情况,因此,终端设备可以为每个应用程序均设置一个可占用定时器资源的最大数量即第二阈值,在已分配的定时器资源的数量大于或等于第一阈值的情况下,若第一应用程序已占用的定时器资源的数量大于或等于第二阈值即超出限制,则终端设备可以拒绝为第一通知消息分配定时器资源。其中,不同应用程序中可以存在具有相同第二阈值的应用程序,也可以存在具有不同第二阈值的应用程序,本申请对此不作限定。
本申请提供的通知处理方法,若当前已分配的定时器资源的数量大于或等于第一阈值,且第一应用程序占用的定时器资源大于或等于第二阈值即超出限制,终端设备可以拒绝为该通知消息分配定时器资源,有利于保证定时器资源在不同应用程序之间均匀分布。
结合第一方面,在第一方面的某些实现方式中,第二阈值与第一应用程序的重要程度成正比。
第二阈值可以与应用程序的重要程序成正比,也就是说,若应用程序的重要程度越高,第二阈值越大,该应用程序可占用的定时器资源越多;若应用程序的重要程度越低,第二阈值越小,该应用程序可占用的定时器资源越少。
本申请提供的通知处理方法,基于第一应用程序的重要程度,确定第一应用程序可以占用的定时器资源的最大数量即第二阈值,有利于使重要的应用程序占用更多的定时器资源,可以使定时器资源得到合理利用,有利于提高定时器资源的利用率。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:在满足以下任一条件的情况下,终端设备为第一通知消息分配定时器资源:第一应用程序是白名单中的应用程序;已分配的定时器资源的数量小于第一阈值;第一应用程序已占用定时器资源的数量小于第二阈值。
白名单中的应用程序用于表示重要的应用程序,在已分配的定时器资源的数量大于或等于第一阈值的情况下,第一应用程序是白名单中的应用程序,可以说明第一应用程序重要,则终端设备也可以为第一通知消息分配定时器资源。这种实现方式,在占用定时器资源过多的情况下,若应用程序较重要,仍然可以为第一通知消息分配定时器资源,有利于满足第一应用程序申请定时器资源的需求。
需要说明的是,白名单中的应用程序的数量不会使定时器资源的占用超出限制,有利于避免导致定时器资源占用超出限制。
若已分配的定时器资源的数量小于第一阈值,可以说明当前定时器资源的占用较少,终端设备可以为第一通知消息分配定时器资源,有利于满足第一应用程序的需求。
在已分配的定时器资源的数量大于或等于第一阈值的情况下,若第一应用程序已占用定时器资源的数量小于第二阈值,也就是未超出限制,终端设备可以为第一通知消息分配定时器资源,有利于保证定时器资源的合理分配。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:终端设备依次释放已分配的定时器资源,直到已分配的定时器资源的数量小于第一阈值。
若已分配的定时器资源的数量大于或等于第一阈值,可以说明当前占用的定时器资源较多,终端设备可以释放些已分配的定时器资源,保证已分配的定时器资源的数量小于第一阈值,降低后续定时器资源占用的数量超出限制。
本申请提供的通知处理方法,在已分配的定时器资源的数量大于或等于第一阈值的情况下,释放已分配的定时器资源,有利于保证定时器资源占用的数量一直小于或等于第一阈值,进而保证定时器资源占用的数量不超出限制,有利于降低终端设备异常重启的概率。
结合第一方面,在第一方面的某些实现方式中,已分配的定时器资源为至少一个应用程序占用的定时器资源;上述终端设备释放已分配的定时器资源,包括:终端设备统计至少一个应用程序中每个应用程序占用的定时器资源的数量;终端设备将每个应用程序占用的定时器资源的数量与权重的乘积,得到每个应用程序占用的定时器资源的相对数量,权重用于表示应用程序的重要程度,权重与应用程序的重要程度成反比;终端设备根据每个应用程序占用的定时器资源的相对数量,从高到低依次对每个应用程序占用的定时器资源进行释放,直到已分配的定时器资源的数量小于第一阈值。
已分配的定时器资源为至少一个应用程序占用的定时器资源,故终端设备可以统计各个应用程序中每个应用程序占用的定时器资源的数量。每个应用程序对应一个权重,该权重用于表示该应用程序的重要程序,权重与应用程序的重要程序可以成反比。终端设备可以将每个应用程序占用的定时器资源的数量乘以其对应的权重,得到每个应用程序占用的定时器资源的相对数量,并可以根据每个应用程序占用的定时器资源的相对数量,从高到低对应用程序进行排序,并释放当前占用的定时器资源的数量最多的应用程序的定时器资源。终端设备释放这些定时器资源可以包括多种实现方式。
在一种可能的实现方式中,终端设备可以将占用的定时器资源的相对数量最多的应用程序所占用的定时器资源一次性释放掉。这种实现方式,终端设备可以一次性释放较多的定时器资源,较早的达到要求,有利于提高释放定时器资源的效率。
在另一种可能的实现方式中,终端设备可以在占用的定时器资源的相对数量最多的应用程序所占用的定时器资源中选择一个定时器资源进行释放。例如,终端设备可以在占用的定时器资源的相对数量最多的应用程序所占用的定时器资源中选择一个定时器即将到期的定时器资源进行释放。这种实现方式,只释放应用程序的一个定时器资源,有利于满足应用程序对定时器资源的占用需求。
终端设备可以在释放之后统计已分配的定时器资源的数量。若终端设备将占用的定时器资源的相对数量最多的应用程序所占用的定时器资源一次性释放掉,终端设备可以统计其他应用程序占用的定时器资源的数量,得到当前已分配的定时器资源的数量。若终端设备在占用的定时器资源的相对数量最多的应用程序所占用的定时器资源中选择一个定时器资源进行释放,终端设备可以统计该应用程序的剩余的占用的定时器资源的数量和其他应用程序占用的定时器资源的数量,得到当前已分配的定时器资源的数量。
若已分配的定时器资源的数量小于第一阈值,则终端设备可以停止释放定时器资源,若已分配的定时器资源的数量大于或等于第一阈值,则获取当前占用的定时器资源的相对数量最多的应用程序,并继续释放当前占用的定时器资源的相对数量最多的应用程序的定时器资源。
本申请提供的通知处理方法,在已分配的定时器资源的数量大于或等于第一阈值的情况下,释放当前占用的定时器资源的相对数量最多的应用程序,当前占用的定时器资源的相对数量最多的应用程序大概率是权重越大的应用程序,也就是重要程序越低的应用程序,在保证定时器资源占用的数量一直小于或等于第一阈值的情况下,更符合用户需求。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:若终端设备为第二通知消息分配了第一定时器资源,终端设备响应于用户删除第二通知消息的操作,释放第一定时器资源。
第二通知消息可以是第一应用程序的通知消息,也可以是其他应用程序的通知消息,本申请对此不作限定。
终端设备检测到第二通知消息,该通知消息申请了定时器资源,终端设备为第二通知消息分配了第一定时器资源。若终端设备检测到用户删除第二通知消息的操作,响应于用户删除第二通知消息的操作,可以释放第一定时器资源。
本申请提供的通知处理方法,响应于用户删除通知消息的操作,可以释放通知消息申请的定时器资源,有利于降低通知消息占用定时器资源的概率,进而有利于降低异常重启的概率。
第二方面,提供了一种通知处理装置,包括:处理模块和拒绝模块。其中,处理模块用于:检测到第一应用程序的第一通知消息,第一通知消息包括第一信息,第一信息用于申请定时器资源;拒绝模块用于:若已分配的定时器资源的数量大于或等于第一阈值,拒绝为第一通知消息分配定时器资源。
结合第二方面,在第二方面的某些实现方式中,处理模块还用于:统计第一应用程序已占用的定时器资源的数量;拒绝模块还用于:若第一应用程序已占用的定时器资源的数量大于或等于第二阈值,拒绝为第一通知消息分配定时器资源。
结合第二方面,在第二方面的某些实现方式中,第二阈值与第一应用程序的重要程度成正比。
结合第二方面,在第二方面的某些实现方式中,处理模块还用于:在满足以下任一条件的情况下,为第一通知消息分配定时器资源:第一应用程序是白名单中的应用程序;已分配的定时器资源的数量小于第一阈值;第一应用程序已占用定时器资源的数量小于第二阈值。
结合第二方面,在第二方面的某些实现方式中,处理模块还用于:依次释放已分配的定时器资源,直到已分配的定时器资源的数量小于第一阈值。
结合第二方面,在第二方面的某些实现方式中,已分配的定时器资源为至少一个应用程序占用的定时器资源;处理模块还用于:统计至少一个应用程序中每个应用程序占用的定时器资源的数量;将每个应用程序占用的定时器资源的数量乘以其对应的权重,得到每个应用程序占用的定时器资源的相对数量;根据每个应用程序占用的定时器资源的相对数量,从高到低依次对每个应用程序占用的定时器资源进行释放,直到已分配的定时器资源的数量小于第一阈值。
结合第二方面,在第二方面的某些实现方式中,处理模块还用于:若为第二通知消息分配了第一定时器资源,响应于用户删除第二通知消息的操作,释放第一定时器资源。
第三方面,本申请提供一种通知处理装置,该通知处理装置包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得通知处理装置执行如第一方面所述的方法。
第四方面,本申请提供一种终端设备,该终端设备可以用于执行如第一方面所述的方法。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如第一方面所述的方法。
第六方面,本申请提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面所述的方法。
第七方面,本申请提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如第一方面所述的方法。
应当理解的是,本申请的第二方面至第七方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1是一种手机重启的示意图;
图2是本申请实施例适用的终端设备的一种软件结构框图;
图3是本申请实施例提供的一种通知处理的示意性框图;
图4是本申请实施例提供的一种通知处理方法的示意性流程图;
图5是本申请实施例提供的一种定时器资源的释放方法的示意性流程图;
图6是本申请实施例提供的另一种定时器资源的释放方法的示意性流程图;
图7是本申请实施例提供的一种定时器资源分配方法的示意性流程图;
图8是本申请实施例提供的一种定时器资源释放方法的示意性流程图;
图9是本申请实施例提供的一种定时器资源的处理方法的示意性流程图;
图10是本申请实施例提供的一种通知处理装置的示意性框图;
图11是本申请实施例提供的另一种通知处理装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
随着应用程序的快速发展,越来越多的应用程序成为用户日常生活中不可或缺的一部分,例如,视频类应用程序、地图类应用程序以及音乐类应用程序等等。目前,各种应用程序的通知消息过多时,会导致终端设备异常重启,影响用户的使用体验。
示例性地,终端设备可以是手机。图1示出了一种手机重启的示意图。如图1中a界面所示,手机的通知栏中存在较多的通知消息,通知栏中显示有健康使用手机应用的通知消息、地图应用的通知消息、视频应用的通知消息以及应用市场的通知消息。该通知栏还显示有6个应用的通知消息,因通知栏显示区域有限,以应用图标的形式显示。手机中应用程序的通知消息过多,手机异常重启,即显示图1中的b界面。手机异常重启,会影响用户的使用的体验。
申请人对终端设备异常重启进行研究,发现应用程序的通知消息会占用终端设备的定时器(alarm)资源,当通知消息过多时,会导致终端设备的定时器资源被大量占用,导致终端设备异常重启,影响终端设备的稳定性,严重影响用户体验。
示例性地,终端设备接收到应用程序的通知消息,该通知消息中包括TimeoutAfter参数,该参数用于向终端设备申请定时器资源以便定时器到期后取消通知信息的显示,终端设备基于该参数,可以为应用程序分配定时器资源。当应用程序的通知消息过多时,终端设备分配的定时器资源超出限制,例如,分配的定时器资源超出500个,终端设备异常重启。
另外,申请人还发现,终端设备检测到用户删除通知消息的操作时,响应于用户删除通知消息的操作,终端设备不会释放定时器资源,导致定时器资源一直被占用,增加了定时器资源超出限制的概率,进而增加了终端设备异常重启的概率。
有鉴于此,本申请实施例提供一种通知处理方法和通知处理装置,若应用程序的通知消息申请定时器资源,终端设备检测到当前已分配的定时器资源的数量过多,不满足定时器资源分配的条件,终端设备可以拒绝为该通知消息分配定时器资源,避免通知消息占用过多的定时器资源,降低终端设备分配定时器资源超出限制的概率,进而有利于降低终端设备异常重启的概率,提高用户体验。另外,终端设备检测到用户删除通知消息的操作时,响应于用户删除通知消息的操作,终端设备可以释放定时器资源,降低终端设备分配定时器资源超出限制的概率,进而降低终端设备异常重启的概率。
为了更好地理解本申请实施例,首先对本申请实施例提供的终端设备进行介绍。
终端设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobilestation,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobilephone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smarthome)中的无线终端等等。
本申请实施例提供的方法,可以适用于任意包括应用程序的终端设备。例如,手机、平板电脑、个人计算机(personal computer,PC)、以及智能手表等可穿戴终端设备,还可以是各种教学辅助工具(例如学习机、早教机)、智能玩具、便携式机器人、个人数字助理(personaldigital assistant,PDA)、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备等,也可以是具有移动办公功能的设备、具有智能家居功能的设备、具有影音娱乐功能的设备、支持智能出行的设备等。应理解,本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备的软件结构。
图2为本申请实施例适用的终端设备的一种软件结构框图。分层架构将终端设备的软件系统分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可以将Android系统分为五层,分别为应用程序层(applications)、应用程序框架层(application framework)、安卓运行时(Android runtime)和系统库、硬件抽象层(hardware abstract layer,HAL)以及内核层(kernel)。
应用程序层可以包括一系列应用程序包,应用程序层通过调用应用程序框架层所提供的应用程序接口(application programming interface,API)运行应用程序。如图2所示,应用程序包可以包括行程、闹钟、日历、地图、通知栏应用以及核心进程或者服务等应用程序。其中,核心进程或者服务用于表示维持终端设备正常运行进程或者服务。例如,定时轮询终端设备运行状态的进程。
应用程序框架层为应用程序层的应用程序提供API和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括通知管理模块、定时器管理模块以及定时器调度模块等。定时器调度模块包括定时器调度策略,该定时器调度策略可以包括允许定时器资源分配的条件、拒绝定时器资源分配的条件以及释放定时器资源的条件。通知管理模块用于生成应用程序的通知消息,若应用程序的通知消息申请定时器资源,通知管理模块还可以用于基于定时器调度策略中的允许定时器资源分配的条件和拒绝定时器资源分配的条件,确定是否为通知消息分配定时器资源。定时器管理模块用于为通知消息分配定时器资源,还可以用于基于定时器调度策略中释放定时器资源的条件,释放通知消息的定时器资源。
安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries)以及三维图形处理库(例如:OpenGL ES)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成和图层处理等。
硬件抽象层,可以包含多个库模块,库模块如可以为摄像头库模块和传感器库模块等。Android系统可以为设备硬件加载相应的库模块,进而实现应用程序框架层访问设备硬件的目的。设备硬件可以包括如终端设备中的摄像头和传感器等。
内核层是硬件和软件之间的层。内核层用于驱动硬件,使得硬件工作。内核层至少包含显示驱动、摄像头驱动以及音频驱动等,本申请实施例对此不做限制。
本申请实施例提供的方法主要在终端设备的应用程序层和应用程序框架层中实现。
示例性地,图3示出了一种通知处理的示意性框图。如图3所示,通知管理模块包括通知预处理模块和定时器预处理模块,通知预处理模块用于生成通知消息,定时器预处理模块用于在通知消息申请定时器资源的情况下,基于定时器调度模块中的定时器调度策略判断是否拒绝定时器资源的申请。定时器管理模块包括定时器资源处理模块、定时器资源池、定时器监控模块以及定时器删除模块。其中,定时器删除模块用于释放已分配的定时器资源。定时器资源池用于存储定时器资源,并在定时器到期时,指示定时器删除模块释放定时器资源。定时器资源处理模块用于在允许定时器资源申请的情况下,基于定时器资源池中的定时器资源为通知分配其请求的定时器资源。定时器监控模块用于基于定时器调度模块中的定时器调度策略对定时器资源进行监控,若满足释放定时器资源的条件,可以指示定时器删除模块释放定时器资源。图3中所示的黑色实线箭头用于表示显示通知消息的路径,黑色虚线箭头用于表示分配定时器资源以及定时器到期时长删除通知消息的路径,黑色点划线箭头和黑色点划线框图用于表示使用定时器资源策略的路径。
核心进程或者服务、行程、闹钟、日历以及地图中的至少一个应用程序可以向通知预处理模块发送通知内容,该通知内容可以包括通知的具体文字、申请的定时器的时长、通知的标题或者通知的格式中的至少一个。通知预处理模块接收通知内容,可以确定发送该通知内容的应用程序,并统计接收该通知内容之前已接收的该应用程序的通知内容的数量,若数量大于50,则删除该通知内容;若数量小于或等于50,则基于该通知内容,生成通知消息。其中,50只是一个示例,本申请实施例对此不作限定。通知预处理模块还可以判断通知消息是否申请定时器资源,若申请定时器资源例如通知消息中包括TimeoutAfter参数,通知预处理模块可以将该通知信息发送至定时器预处理模块。定时器预处理模块可以调用定时器调度模块中的定时器调度策略,判断是否分配定时器资源。若通知消息满足定时器调度策略中拒绝定时器资源分配的条件,则拒绝分配定时器资源,将通知消息发送至通知栏应用,通知栏应用接收该通知消息,并显示该通知消息。可以理解的是,该通知消息未分配定时器资源,不会自动消失。图3所示的拒绝信号用于表示通知消息满足定时器调度策略中拒绝定时器资源分配的条件。
若通知消息满足定时器调度策略中允许定时器资源分配的条件,定时器预处理模块可以指示定时器资源处理模块分配定时器资源。定时器资源处理模块基于分配定时器资源的指示信息,可以为该通知消息分配定时器资源池中的定时器资源。若分配的定时器资源对应的定时器时间到期,定时器删除模块可以指示通知栏应用删除通知消息。其中,定时器时间到期是指定时器时长到达,例如,定时器时长为3分钟,定时器时间到期是指已到达3分钟。
定时器监控模块用于监控定时器资源处理模块为通知消息分配的定时器资源,并监控已分配的定时器资源是否满足释放定时器资源的条件,若满足释放定时器资源的条件,定时器删除模块可以释放为通知消息分配的定时器资源。图3所示的释放信号用于表示已分配的定时器资源满足释放定时器资源的条件。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以独立实现,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
示例性地,图4示出了一种通知处理方法400的示意性流程图。该方法可以由终端设备执行,终端设备的软件架构可以如上述图2所示,但本申请实施例并不限于此。图4中所示的通知管理模块包括通知监听器(NotificationListener)、通知管理器(NotificationManager)以及通知管理服务(NotificationManagerService),定时器管理模块包括定时器管理器(AlarmManager)、定时器管理器服务(AlarmManagerService)以及定时器资源池(AlarmStore)。通知监听器和通知管理器可以用于实现上述图3中所示的通知预处理模块的功能,通知管理服务可以用于实现上述图3中所示的定时器预处理模块的功能,定时器管理器和定时器管理器服务可以用于实现上述图3中所示的定时器资源处理模块的功能、定时器监控模块的功能以及定时器删除模块的功能。
如图4所示,该方法400可以包括如下步骤:
S401、第一应用程序向通知管理器发送通知内容,对应地,通知管理器接收通知内容。
第一应用程序可以是终端设备安装的任一个或者多个应用程序。例如,第一应用程序可以是上述图2所示的闹钟、日历、地图、行程等应用程序中的至少一个应用程序。
通知内容可以包括通知的具体文字、申请的定时器的时长、通知的标题或者通知的格式中的至少一个。
示例性地,第一应用程序向通知管理器发送通知内容,对应地,通知管理器接收通知内容。其中,通知内容包括通知的具体文字、申请的定时器的时长、通知的标题以及通知的格式。
S402、通知管理器基于通知内容,生成通知消息。
示例性地,通知管理器可以提供notify()函数用于基于通知内容,生成通知消息。
S403、通知管理器向通知管理器服务发送通知消息,对应地,通知管理器服务接收通知消息。
通知管理器服务可以理解为通知管理器中的一个函数,通知管理器向通知管理器服务发送通知消息,可以理解为通知管理器调用通知管理器服务对通知消息进行处理。
S404、若通知消息申请定时器资源,通知管理器服务可以检测到通知消息申请定时器资源。
通知管理器服务接收通知消息后,若通知消息申请定时器资源,通知管理器服务可以检测到通知消息申请定时器资源。
示例性地,通知管理器服务接收通知消息后,检测到通知消息中包括TimeoutAfter参数,可以确定该通知消息申请定时器资源。
若通知消息未申请定时器资源,通知管理器服务可以只显示通知消息,即执行S409。
S405、通知管理器服务基于定时器调度策略,确定为通知消息分配定时器资源。
定时器调度策略可以包括允许定时器资源分配的条件、拒绝定时器资源分配的条件以及释放定时器资源的条件。当满足允许定时器资源分配的条件时,通知管理器服务可以为通知消息分配定时器资源。可以理解的是,当满足拒绝定时器资源分配的条件时,通知管理器服务可以拒绝为通知消息分配定时器资源。当满足释放定时器资源的条件时,通知管理器服务可以释放已分配的定时器资源。
S406、通知管理器服务向定时器管理器发送分配定时器资源的指示信息,对应地,定时器管理器接收分配定时器资源的指示信息。其中,分配定时器资源的指示信息用于指示允许分配定时器资源。
S407、定时器管理器基于分配定时器资源的指示信息,指示定时器管理器服务记录分配的定时器资源的信息。
定时器管理器服务可以理解为定时器管理器中的一个函数,定时器管理器向定时器管理器服务发送分配定时器资源的指示信息,可以理解为定时器管理器调用定时器管理器服务分配定时器资源。
S408、定时器管理器服务基于定时器管理器的指示信息,记录分配的定时器资源的信息,并基于定时器资源池中的资源分配定时器资源。
定时器管理器服务可以基于定时器管理器的指示信息,记录定时器类型、定时器时长以及第一应用程序的名称等信息。其中,定时器类型用于表示申请定时器资源的用途。订水器类型可以包括通知类和系统类。通知类用于表示申请定时器资源的为通知消息,系统类用于表示申请定时器资源的为核心进程或者服务。定时器管理器服务还可以为通知消息分配定时器资源池中的定时器资源。
S409、通知管理器服务还可以向通知监听器发送通知消息,对应地,通知监听器接收通知消息。
通知管理器服务可以执行S406和S409,本申请实施例不限定这两个步骤的执行顺序,也就是说,通知管理器服务可以先执行S406,后执行S409,也可以先执行S409,后执行S406。若通知消息未申请定时器资源,通知管理器服务可以不执行S406,只执行S409。
S410、通知监听器向通知栏应用(SystemUI)发送通知消息,对应地,通知栏应用接收通知消息,并显示通知消息。
通知栏应用接收通知消息后,可以在通知栏区域显示通知消息。
本申请实施例提供的通知处理方法,提供定时器调度策略,在满足定时器调度策略中允许定时器资源分配的条件的情况下,为通知消息分配定时器资源,通知消息在定时器到期后消失,有利于避免通知消息占用过多的显示区域。
分配的定时器资源可以在定时器到期后释放,也可以在检测到用户删除通知消息时释放。
例如,图5示出了一种定时器资源的释放方法500的示意性流程图。如图5所示,该方法500可以包括如下步骤:
S501、通知栏应用检测到用户删除通知消息的操作。
通知消息用于指任一应用程序的通知消息。例如,通知消息可以指上述方法400中的通知消息,但本申请实施例并不限于此。
S502、通知栏应用响应于用户删除通知消息的操作,指示通知管理器服务删除通知消息。
通知栏应用响应于用户删除通知消息的操作,还可以在通知栏应用中清除通知消息,即取消通知消息的显示,或者说,删除通知消息。
S503、通知管理器服务基于删除通知消息的指示,向定时器管理器发送释放定时器资源的指示信息,对应地,定时器管理器接收释放定时 器资源的指示信息。其中,释放定时器资源的指示信息用于指示释放定时器资源。
S504、定时器管理器基于释放定时器资源的指示信息,指示定时器管理服务释放定时器资源。
S505、定时器管理服务基于释放定时器资源的指示,清除定时器资源池中通知消息申请的定时器资源。
示例性地,本申请实施例可以提供cancelNotificationLocked()函数,响应于用户删除通知消息的操作,可以通过cancelNotificationLocked()函数对通知消息进行清除,本申请实施例还可以提供cancel()函数,若通知消息申请了定时器资源,响应于用户删除通知消息的操作,可以通过cancel()函数对通知消息申请的定时器资源进行释放。
本申请实施例提供的定时器资源的释放方法,响应于用户删除通知消息的操作,可以释放通知消息申请的定时器资源,有利于降低通知消息占用定时器资源的概率,进而有利于降低异常重启的概率。
又如,图6示出了一种定时器资源的释放方法600的示意性流程图。如图6所示,该方法600可以包括如下步骤:
S601、定时器资源池检测到定时器资源到期。
定时器资源的类型可以是通知类,即该定时器资源是为通知消息分配的。定时器资源到期也就是定时器时长到达。
在其他示例中,定时器资源的类型也可以是系统类,即该定时器资源是为核心进程或者服务分配的。
S602、定时器资源池指示通知栏应用清除通知消息。
通知栏应用基于清除通知消息的指示,可以在通知栏应用中清除通知消息,即取消通知消息的显示,或者说,删除通知消息。
S603、通知栏应用基于清除通知消息的指示,指示通知管理器服务清除通知消息。
通知栏应用基于清除通知消息的指示,还可以指示通知管理器服务清除通知消息,以便于释放通知消息申请的定时器资源。
S604、通知管理器服务基于清除通知消息的指示,向定时器管理器发送释放定时器资源的指示信息,对应地,定时器管理器接收释放定时 器资源的指示信息。其中,释放定时器资源的指示信息用于指示释放定时器资源。
通知管理器服务基于清除通知消息的指示,可以判断通知消息是否申请了定时器资源,若通知消息申请了定时器资源,通知管理器服务可以向定时器管理器发送释放定时器资源的指示信息。
S605、定时器管理器基于释放定时器资源的指示信息,指示定时器管理服务释放定时器资源。
S606、定时器管理服务基于释放定时器资源的指示,清除定时器资源池中通知消息申请的定时器资源。
示例性地,本申请实施例可以提供cancelNotificationLocked()函数,检测到定时器资源到期,可以通过cancelNotificationLocked()函数对通知消息进行清除,本申请实施例还可以提供cancel()函数,若通知消息申请了定时器资源,检测到定时器资源到期,可以通过cancel()函数对通知消息申请的定时器资源进行释放。
本申请实施例提供的定时器资源的释放方法,检测到定时器资源到期,可以释放通知消息申请的定时器资源,有利于降低通知消息占用定时器资源的概率,进而有利于降低异常重启的概率。
上述方法中均涉及定时器调度策略,下面将详细介绍定时器调度策略。
若通知消息申请定时器资源,且满足定时器调度策略中允许定时器资源分配的条件,终端设备可以为通知消息分配定时器资源。若通知消息申请定时器资源,且满足定时器调度策略中拒绝定时器资源分配的条件,终端设备可以拒绝为通知消息分配定时器资源。若通知消息申请定时器资源,满足定时器调度策略中释放定时器资源的条件,则终端设备可以释放已分配的定时器资源。
示例性地,图7示出了一种定时器资源分配方法700的示意性流程图。如图7所示,该方法700可以包括如下步骤:
S701、检测到第一应用程序的通知消息,通知消息包括第一信息,该第一信息用于申请定时器资源。
S702、查询当前已分配的定时器资源的数量X。
终端设备可以对分配的定时器资源进行记录,并统计已分配的定时器资源的数量,当检测到第一应用程序的通知消息,且该通知消息申请定时器资源,终端设备可以查询当前已分配的定时器资源的数量。本申请实施例用字母X表示已分配的定时器资源的数量。
S703、判断X是否大于或等于第一阈值。
第一阈值是开发人员预设于终端设备中的。例如,第一阈值可以是300或者400。
若X大于或等于第一阈值,可以说明定时器资源被大量占用,终端设备可以执行S704。若X小于第一阈值,可以说明定时器资源占用较少,终端设备可以为通知消息分配定时器资源,即可以执行S708。
S704、若X大于或等于第一阈值,判断第一应用程序是否为白名单中的应用程序。
白名单中可以存在至少一个应用程序,白名单中可以包括三方应用程序和/或核心进程(或服务)。例如,白名单中可以包括日历、行程以及闹钟等应用程序。白名单中的应用程序可以是开发人员预设于终端设备中的,也可以是用户添加的,本申请实施例对此不作限定。若白名单中的应用程序是开发人员预设于终端设备中的,无需用户进行添加,有利于避免繁琐的操作,有利于提高用户体验。若白名单中的应用程序是用户添加的,用户可以基于自己的需求设置白名单中的应用程序,灵活性更高,用户体验更好。
若第一应用程序是白名单中的应用程序,终端设备可以为通知消息分配定时器资源,即执行S709。若第一应用程序不是白名单中的应用程序,终端设备可以执行S705。这种实现方式,白名单中的应用程序用于表示重要的程序,若第一应用程序是白名单中的应用程序,可以说明第一应用程序重要,即使X大于或等于第一阈值,终端设备仍可以为通知消息分配定时器资源,有利于满足第一应用程序申请定时器资源的需求。
需要说明的是,S704是可选的,若X大于或等于第一阈值,终端设备也可以直接执行S708。
S705、若第一应用程序不是白名单中的应用程序,判断第一应用程序是否为黑名单中的应用程序。
黑名单中可以存在至少一个应用程序,黑名单中可以包括三方应用程序。例如,黑名单中可以包括地图等应用程序。黑名单中的应用程序可以是开发人员预设于终端设备中的,也可以是用户添加的,本申请实施例对此不作限定。若黑名单中的应用程序是开发人员预设于终端设备中的,无需用户进行添加,有利于避免繁琐的操作,有利于提高用户体验。若黑名单中的应用程序是用户添加的,用户可以基于自己的需求设置黑名单中的应用程序,灵活性更高,用户体验更好。
若第一应用程序是黑名单中的应用程序,终端设备可以拒绝为通知消息分配定时器资源,即执行S708。若第一应用程序不是白名单中的应用程序,终端设备可以执行S706。这种实现方式,黑名单中的应用程序用于表示不重要的应用程序,若第一应用程序是黑名单中的应用程序,可以说明第一应用程序不重要,在X大于或等于第一阈值的情况下,终端设备可以直接拒绝为通知消息分配定时器资源,有利于在定时器资源被大量占用的情况下,避免分配不必要的定时器资源,有利于降低定时器资源超出限制的概率。
需要说明的是,S705是可选的,若X大于或等于第一阈值,和/或,第一应用程序不是白名单中的应用,终端设备也可以直接拒绝为通知消息分配定时器资源,即执行S708。
S706、若第一应用程序不是黑名单中的应用程序,统计第一应用程序已占用的定时器资源的数量Y。
若第一应用程序不是白名单中的应用程序,也不是黑名单中的应用程序,终端设备可以统计其已占用的定时器资源的数量,本申请实施例可以使用字母Y表示第一应用程序已占用的定时器资源的数量。可以理解的是,第一应用程序已占用的定时器资源的数量用于表示在上述通知消息之前第一应用程序申请的定时器资源的总量。
S707、判断Y是否小于或等于第二阈值。
第二阈值是开发人员预设于终端设备中的。第二阈值可以用字母M或者N表示,本申请实施例对此不作限定。不同应用程序可以对应相同的第二阈值或者不同的第二阈值,或者,不同应用程序中可以存在具有相同第二阈值的应用程序,也可以存在具有不同第二阈值的应用程序。本申请实施例对此不作限定。若不同应用程序对应相同的第二阈值,简单方便,若不同应用程序对应不同的第二阈值,即为不同应用程序设置不同的阈值,灵活性更强。
可选地,不同应用程序中可以存在具有相同第二阈值的应用程序,也可以存在具有不同第二阈值的应用程序。在这种情况下,第二阈值可以与应用程序的重要程序成正比,也就是说,若应用程序的重要程度越高,第二阈值越大,该应用程序可占用的定时器资源越多;若应用程序的重要程度越低,第二阈值越小,该应用程序可占用的定时器资源越少。
应用程序的重要程度可以通过权重表示,权重越小,应用程序的重要程度越大,或者,权重越大,应用程序的重要程度越小,本申请实施例对此不作限定。每个应用程序的权重可以是预设的,也可以是基于预设算法周期性更新的,本申请实施例对此不作限定。
示例性地,若权重越小,则应用程序的重要程度越大,且应用程序的权重是预设的。例如,终端设备可以存储有白名单,白名单中包括的应用程序的权重可以为0.1,用户使用频次前10名的应用程序的权重可以为0.1,用户使用频次前10名的应用程序至前30名的应用程序的权重可以为0.5,其他应用程序的权重可以为2,预设常数除以应用程序的权重等于该应用程序对应的第二阈值。可以理解的是,预设常数对于不同应用程序均是相同的。
若Y小于或等于第二阈值,可以说明第一应用程序已占用的定时器资源的数量未达到限制即第二阈值,终端设备可以为通知消息分配定时资源,即执行S709。若Y大于第二阈值,可以说明第一应用程序已占用的定时器资源的数量已达到限制即第二阈值,终端设备可以拒绝为通知消息分配定时器资源,即执行S708。这种实现方式,可以为应用程设置占用定时器资源的数量阈值即第二阈值,基于第二阈值判断是否为通知消息分配定时器资源,可以均衡地在不同的应用程序中分配定时器资源。
S708、若Y大于第二阈值,拒绝为通知消息分配定时器资源。
若Y大于第二阈值,可以说明第一应用程序已占用的定时器资源的数量已达到限制即第二阈值,终端设备可以拒绝为通知消息分配定时器资源。
需要说明的是,上述S706和S707也是可选的,若X大于或等于第一阈值,和/或,第一应用程序不是白名单中的应用程序,也不是黑名单中的应用程序,终端设备可以拒绝为通知消息分配定时器资源,即执行S708。
综上所述,在满足以下条件的情况下,终端设备可以拒绝为通知消息分配定时器资源:
X大于或等于第一阈值,第一应用程序不是白名单中的应用程序,第一应用程序不是黑名单中的应用程序,且Y大于第二阈值。其中,第一应用程序不是白名单中的应用程序,第一应用程序不是黑名单中的应用程序,且Y大于第二阈值是可选的。这些条件可以称为定时器调度策略中拒绝定时器资源分配的条件。
S709、若Y小于或等于第二阈值,或者,X小于第一阈值,为通知消息分配定时器资源。
若Y小于或等于第二阈值,可以说明第一应用程序已占用的定时器资源的数量未达到限制即第二阈值,终端设备可以为通知消息分配定时资源。若X小于第一阈值,可以说明定时器资源占用较少,终端设备可以为通知消息分配定时器资源。
综上所述,在满足以下条件的情况下,终端设备可以为通知消息分配定时器资源:
X小于第一阈值;或者,X大于或等于第一阈值,且第一应用程序是白名单中的应用程序;或者,X大于或等于第一阈值,第一应用程序不是白名单中的应用程序,第一应用程序不是黑名单中的应用程序,且Y小于或等于第二阈值。这些条件可以称为定时器调度策略中允许定时器资源分配的条件。
S710、记录分配的定时器资源的信息。
终端设备可以记录为通知消息分配的定时器资源的信息,例如,记录定时器类型、定时器时长以及第一应用程序的名称等信息。
本申请实施例提供的定时器资源分配方法,若满足定时器调度策略中允许定时器资源分配的条件,可以为通知消息分配定时器资源;若满足定时器调度策略中拒绝定时器资源分配的条件,可以拒绝为通知消息分配定时器资源,有利于合理分配定时器资源,避免定时器资源超出限制,进而有利于降低终端设备异常重启的概率。
上述X大于或等于第一阈值,可以为定时器调度策略中释放定时器资源的条件,若满足X大于或等于第一阈值,终端设备可以依次释放已分配的定时器资源,直到X小于第一阈值。第一阈值可以为400或者430等等,本申请实施例对此不作限定。
示例性地,图8示出了一种定时器资源释放方法800的示意性流程图。如图8所示,该方法800可以包括如下步骤:
S801、检测到X大于或等于第一阈值。
可以理解的是,X用于表示当前已分配的定时器资源的数量。
S802、统计各个应用程序中每个应用程序占用的定时器资源的数量。
已分配的定时器资源为至少一个应用程序占用的定时器资源,故终端设备可以统计各个应用程序中每个应用程序占用的定时器资源的数量。
示例性地,若当前已分配的定时器资源的数量X等于420,且被10个应用程序占用。终端设备可以统计这10个应用程序中每个应用程序占用的定时器资源的数量。
S803、将每个应用程序占用的定时器资源的数量乘以其对应的权重,得到每个应用程序占用的定时器资源的相对数量。
每个应用程序对应一个权重,该权重用于表示该应用程序的重要程序,权重与应用程序的重要程序可以成反比。每个应用程序的权重可以是预设的,也可以是基于预设算法周期性更新的,本申请实施例对此不作限定。
示例性地,权重与应用程序的重要程序成反比,且应用程序的权重是预设的。例如,终端设备可以存储有白名单,白名单中包括的应用程序的权重可以为0.1,用户使用频次前10名的应用程序的权重可以为0.1,用户使用频次前10名的应用程序至前30名的应用程序的权重可以为0.5,其他应用程序的权重可以为2。
S804、获取当前占用的定时器资源的相对数量最多的应用程序。
终端设备可以根据每个应用程序占用的定时器资源的相对数量,从高到低或者从低到高(或者说从多到少或者从少到多)对应用程序进行排序,以便于获取当前占用的定时器资源的相对数量最多的应用程序。可以理解的是,当前占用的定时器资源的相对数量最多的应用程序大概率是权重越大的应用程序,也就是重要程序越低的应用程序。
S805、释放占用的定时器资源的相对数量最多的应用程序占用的定时器资源。
终端设备可以将当前占用定时器资源的相对数量最多的应用程序所占用的定时器资源进行释放,以减少对定时器资源的占用。终端设备释放这些定时器资源可以包括多种实现方式。
在一种可能的实现方式中,终端设备可以将占用的定时器资源的相对数量最多的应用程序所占用的定时器资源一次性释放掉。这种实现方式,终端设备可以一次性释放较多的定时器资源,较早的达到要求,有利于提高释放定时器资源的效率。
在另一种可能的实现方式中,终端设备可以在占用的定时器资源的相对数量最多的应用程序所占用的定时器资源中选择一个定时器资源进行释放。例如,终端设备可以在占用的定时器资源的相对数量最多的应用程序所占用的定时器资源中选择一个定时器即将到期的定时器资源进行释放。这种实现方式,只释放应用程序的一个定时器资源,有利于满足应用程序对定时器资源的占用需求。
S806、判断当前已分配的定时器资源的数量是否小于第一阈值。
当前已分配的定时器资源的数量用于指释放定时器资源之后的定时器资源占用的数量,也就是说,终端设备执行上述S805之后,可以统计定时器资源仍然被占用的数量,得到当前已分配的定时器资源的数量。
若终端设备将占用的定时器资源的相对数量最多的应用程序所占用的定时器资源一次性释放掉,终端设备可以统计其他应用程序占用的定时器资源的数量,得到当前已分配的定时器资源的数量。若终端设备在占用的定时器资源的相对数量最多的应用程序所占用的定时器资源中选择一个定时器资源进行释放,终端设备可以统计该应用程序的剩余的占用的定时器资源的数量和其他应用程序占用的定时器资源的数量,得到当前已分配的定时器资源的数量。
若当前已分配的定时器资源的数量大于或等于第一阈值,可以说明定时器资源仍然占用较多,终端设备可以重复执行上述S803至S806,即继续释放被占用的定时器资源,直至当前已分配的定时器资源的数量小于第一阈值。
本申请实施例提供的定时器资源释放方法,在满足定时器调度策略中释放定时器资源的条件的情况下,释放已分配的定时器资源,有利于保证定时器资源占用的数量一直小于或等于第一阈值,进而保证定时器资源占用的数量不超出限制,有利于降低终端设备异常重启的概率。
为了更好地理解本申请实施例提供的定时器调度策略,本申请实施例提供一种具体实现方式。
示例性地,上述第一阈值包括300和400。第二阈值包括M和N。当第一阈值为300时,第二阈值为N;当第一阈值为400时,第二阈值为M。图9示出了一种定时器资源的处理方法900的示意性流程图。如图9所示,该方法900可以包括如下步骤:
S901、检测到第一应用程序的通知消息,通知消息包括第一信息,该第一信息用于申请定时器资源。
S902、查询当前已分配的定时器资源的数量X。
S902与上述S702相同,此处不再赘述。
S903、判断X是否大于或等于300。
若X大于或等于300,可以说明定时器资源占用数量较少,终端设备可以为通知消息分配定时器资源,即执行S911。若X大于或等于300,终端设备可以执行S904。
S904、若X大于或等于300,判断X是否小于400。
若X大于或等于300,且X大于或等于400,终端设备可以执行S908。若X大于或等于300,且X小于400,终端设备可以执行S905。
S905、若X小于400,则统计第一应用程序已占用的定时器资源的数量Y。
S906、判断Y是否小于或等于N。
若Y小于或等于N,可以说明第一应用程序已占用的定时器资源的数量未超出限制,可以为通知消息分配定时器资源,即执行S911。若Y大于N,可以说明第一应用程序已占用的定时器资源的数量超出限制,终端设备可以拒绝为通知消息分配定时器资源,即执行S907。
S907、若Y大于N,拒绝为通知消息分配定时器资源。
S908、若X大于或等于400,判断第一应用程序是否为白名单中的应用程序。
若第一应用程序是白名单中的应用程序,可以说明第一应用程序重要,即使X大于或等于400,终端设备也可以为通知消息分配定时器资源,即执行S912。可以理解的是,白名单中的应用程序的数量应小于100。若第一应用程序是白名单中的应用程序,可以说明第一应用程序不太重要,终端设备可以执行S909。
若X大于或等于400,终端设备还可以释放定时器资源,直至占用的定时器资源的数量小于400,即执行上述S802至S806,具体实现方式此处不再赘述。
S909、若第一应用程序不是白名单中的应用程序,判断第一应用程序是否为黑名单中的应用程序。
黑名单中的应用程序用于表示不重要的应用程序,若第一应用程序是黑名单中的应用程序,可以说明第一应用程序不重要,在X大于或等于400的情况下,终端设备可以直接拒绝为通知消息分配定时器资源,即执行S907。若第一应用程序不是黑名单中的应用程序,可以说明第一应用程序处于重要和不重要之前,终端设备可以执行S910。
S910、统计第一应用程序已占用的定时器资源的数量Z。
S911、判断Z是否小于或等于M。
若Z小于或等于M,可以说明第一应用程序已占用的定时器资源的数量未超出限制,可以为通知消息分配定时器资源,即执行S912。若Z大于M,可以说明第一应用程序已占用的定时器资源的数量超出限制,终端设备可以拒绝为通知消息分配定时器资源,即执行S907。
S912、若Z小于或等于N,为通知消息分配定时器资源。
S913、记录分配的定时器资源的信息。
S913与上述S710相同,本申请实施例在此不再赘述。
本申请实施例提供的通知处理方法,对于定时器资源的占用数量设置了300和400这两个阈值,若定时器资源的占用数量小于300,可以为通知消息分配定时器资源;若定时器资源的占用数量在300至400之间,可以仅为未超出限制的应用程序的通知消息分配定时器资源;若定时器资源的占用数量超过400,第一应用程序为白名单中的应用程序,可以为通知消息分配定时器资源,若第一应用程序为黑名单中的应用程序,可以拒绝为通知消息分配定时器资源,若第一应用程序不是白名单中的应用程序,也不是黑名单中的应用程序,可以仅为未超出限制的应用程序的通知消息分配定时器资源,有利于合理分配定时器资源,避免定时器资源超出限制,进而有利于降低终端设备异常重启的概率。
上述实施例中各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文中结合图1至图9,详细描述了本申请实施例提供的方法,下面将结合图10和图11,详细描述本申请实施例提供的装置。
图10示出了本申请实施例提供的一种通知处理装置1000的示意性框图。如图10所示,该通知处理装置1000包括:处理模块1010和拒绝模块1020。其中,处理模块1010用于:检测到第一应用程序的第一通知消息,第一通知消息包括第一信息,第一信息用于申请定时器资源;拒绝模块1020用于:若已分配的定时器资源的数量大于或等于第一阈值,拒绝为第一通知消息分配定时器资源。
应理解,这里的通知处理装置1000以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选的例子中,本领域技术人员可以理解,通知处理装置1000可以具体为上述方法实施例中的终端设备,或者,上述方法实施例中终端设备的功能可以集成在通知处理装置1000中,通知处理装置1000可以用于执行上述方法实施例中与终端设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述通知处理装置1000具有实现上述方法实施例中终端设备执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在本申请的实施例中,图10中的通知处理装置1000也可以是芯片或者芯片系统,例如:片上系统(system on chip,SoC)。
图11是本申请实施例提供的另一种通知处理装置1100的示意性框图。如图11所示,该通知处理装置1100包括:处理器1110、收发器1120和存储器1130。其中,处理器1110、收发器1120和存储器1130通过内部连接通路互相通信,该存储器1130用于存储指令,该处理器1110用于执行该存储器1130存储的指令,以控制该收发器1120发送信号和/或接收信号。
应理解,通知处理装置1100可以具体为上述方法实施例中的终端设备,或者,上述方法实施例中终端设备的功能可以集成在通知处理装置1100中,通知处理装置1100可以用于执行上述方法实施例中与终端设备对应的各个步骤和/或流程。可选地,该存储器1130可以包括只读存储器和随机存取存储器,并向处理器1110提供指令和数据。存储器1130的一部分还可以包括非易失性随机存取存储器。例如,存储器1130还可以存储设备类型的信息。该处理器1110可以用于执行存储器1130中存储的指令,并且该处理器1110执行该指令时,该处理器1110可以执行上述方法实施例中与终端设备对应的各个步骤和/或流程。
应理解,在本申请实施例中,该处理器1110可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序用于实现上述方法实施例中终端设备对应的方法。
本申请还提供了一种芯片系统,该芯片系统用于支持上述方法实施例中终端设备实现本申请实施例所示的功能。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述方法实施例所示的终端设备对应的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应所述以权利要求的保护范围为准。
Claims (7)
1.一种通知处理方法,其特征在于,应用于包括第一应用程序的终端设备,所述方法包括:
所述终端设备检测到所述第一应用程序的第一通知消息,所述第一通知消息包括第一信息,所述第一信息用于申请定时器资源;
若已分配的定时器资源的数量大于或等于第一阈值,所述终端设备拒绝为所述第一通知消息分配定时器资源;
所述终端设备统计所述第一应用程序已占用的定时器资源的数量;
其中,所述终端设备拒绝为所述第一通知消息分配定时器资源,包括:
若所述第一应用程序已占用的定时器资源的数量大于或等于第二阈值,所述终端设备拒绝为所述第一通知消息分配定时器资源,所述第二阈值与所述第一应用程序的重要程度成正比,不同的应用程序对应有相同或者不同的第二阈值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在满足以下任一条件的情况下,所述终端设备为所述第一通知消息分配定时器资源:
所述第一应用程序是白名单中的应用程序;
所述已分配的定时器资源的数量小于所述第一阈值;
所述第一应用程序已占用定时器资源的数量小于第二阈值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述终端设备依次释放所述已分配的定时器资源,直到所述已分配的定时器资源的数量小于所述第一阈值。
4.根据权利要求3所述的方法,其特征在于,所述已分配的定时器资源为至少一个应用程序占用的定时器资源;
所述终端设备释放所述已分配的定时器资源,包括:
所述终端设备统计所述至少一个应用程序中每个应用程序占用的定时器资源的数量;
所述终端设备将所述每个应用程序占用的定时器资源的数量与权重的乘积,得到每个应用程序占用的定时器资源的相对数量,所述权重用于表示应用程序的重要程度,所述权重与所述应用程序的重要程度成反比;
所述终端设备根据所述每个应用程序占用的定时器资源的相对数量,从高到低依次对所述每个应用程序占用的定时器资源进行释放,直到所述已分配的定时器资源的数量小于所述第一阈值。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
若所述终端设备为第二通知消息分配了第一定时器资源,所述终端设备响应于用户删除所述第二通知消息的操作,释放所述第一定时器资源。
6.一种通知处理装置,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述通知处理装置执行如权利要求1至5中任一项所述的方法。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310048899.3A CN115883719B (zh) | 2023-02-01 | 2023-02-01 | 通知处理方法和通知处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310048899.3A CN115883719B (zh) | 2023-02-01 | 2023-02-01 | 通知处理方法和通知处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115883719A CN115883719A (zh) | 2023-03-31 |
CN115883719B true CN115883719B (zh) | 2023-07-25 |
Family
ID=85758553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310048899.3A Active CN115883719B (zh) | 2023-02-01 | 2023-02-01 | 通知处理方法和通知处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115883719B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1235419C (zh) * | 2002-12-21 | 2006-01-04 | 华为技术有限公司 | 一种通信系统中资源规划方法 |
ATE396601T1 (de) * | 2005-11-10 | 2008-06-15 | Research In Motion Ltd | Verfahren und vorrichtung zur kommunikationsbteriebsmittelzuteilung durch das verwenden eines temporären kanalsetidentifizierers |
CN101094079A (zh) * | 2006-06-20 | 2007-12-26 | 中兴通讯股份有限公司 | 数字集群系统计费信息收集方法 |
CN102307224A (zh) * | 2011-05-17 | 2012-01-04 | 华为软件技术有限公司 | 云计算系统中业务隔离的实现方法及装置、云服务器 |
CN102264157A (zh) * | 2011-08-24 | 2011-11-30 | 大唐移动通信设备有限公司 | 一种切换过程中的资源释放方法及装置 |
CN105208654B (zh) * | 2014-06-20 | 2020-09-01 | 中兴通讯股份有限公司 | 一种通知消息发送方法及装置 |
CN111436140B (zh) * | 2019-03-25 | 2023-06-30 | 维沃移动通信有限公司 | 资源分配方法、释放方法、终端及网络设备 |
-
2023
- 2023-02-01 CN CN202310048899.3A patent/CN115883719B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115883719A (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9201693B2 (en) | Quota-based resource management | |
CN108536538A (zh) | 处理器核心调度方法、装置、终端及存储介质 | |
CN108009006A (zh) | I/o请求的调度方法及装置 | |
KR20140143073A (ko) | 전자 기기 및 전자 기기에서 배터리 정보 제공 방법 | |
CN113473074B (zh) | 一种检测方法、电子设备、检测设备以及存储介质 | |
CN113454595A (zh) | 计算设备的内存崩溃预防 | |
CN116088716B (zh) | 窗口管理方法和终端设备 | |
CN112052096A (zh) | 资源处理方法、装置、服务器及终端 | |
CN115883719B (zh) | 通知处理方法和通知处理装置 | |
WO2016123888A1 (zh) | 内存空间调度方法及多系统终端 | |
JP2021520156A (ja) | 情報を示し、情報を解釈する方法および装置、基地局、ならびにユーザ機器 | |
CN116071123A (zh) | 商品数据处理方法、系统、电子设备及存储介质 | |
CN107426303B (zh) | 一种信息处理方法及装置 | |
CN117632460A (zh) | 一种负载调节方法及终端设备 | |
CN106412257B (zh) | 定位服务控制方法及系统 | |
CN114518959A (zh) | 基于分布式的节点资源负载均衡方法、装置及电子设备 | |
CN116185247A (zh) | 分屏推荐方法及电子设备 | |
CN110187957B (zh) | 一种下载任务的排队方法、装置及电子设备 | |
CN116347559B (zh) | 电子设备的网络接入方法和网络接入装置 | |
CN116048646B (zh) | 进程处理方法及电子设备 | |
CN115168057B (zh) | 基于k8s集群的资源调度方法及装置 | |
CN110012053B (zh) | Soa系统架构下的系统调用方法、装置、设备及soa系统架构 | |
CN110572768B (zh) | 报警方法、装置、设备和存储介质 | |
CN115361699A (zh) | 一种流量预警方法、装置、终端设备及介质 | |
CN116708544A (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 |