CN106412284A - 一种Android系统中Alarm的控制方法及移动终端 - Google Patents
一种Android系统中Alarm的控制方法及移动终端 Download PDFInfo
- Publication number
- CN106412284A CN106412284A CN201610856403.5A CN201610856403A CN106412284A CN 106412284 A CN106412284 A CN 106412284A CN 201610856403 A CN201610856403 A CN 201610856403A CN 106412284 A CN106412284 A CN 106412284A
- Authority
- CN
- China
- Prior art keywords
- alarm
- time
- synchronization
- standby
- type
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72451—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to schedules, e.g. using calendar applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72454—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明公开了一种Android系统中Alarm的控制方法,包括以下步骤:S10、根据移动终端上应用程序中Alarm的性质类型,预先设置应用程序中Alarm所对应的同步控制类型;S30、当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间,对多个Alarm进行同步控制;S40、当同步控制类型为待机同步控制时,在移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间,对多个Alarm进行同步控制。本发明中将多个Alarm同步成一个Alarm;会使得Alarm出现延迟或提前,但不会影响应用程序的整体运行;从而减少系统被唤醒的次数,延长移动终端的待机时间。
Description
技术领域
本发明涉及移动终端技术领域,特别是涉及Android系统中Alarm的控制方法及移动终端。
背景技术
Alarm是android系统提供的用于完成闹钟式定时任务的类,当闹钟响起(时间到)时,在它上面注册的一个意图(Intent)将会被系统以广播发出后,自动启动目标程序。系统通过AlarmManagerService服务组件来管理所有的Alarm,Alarm支持一次性定时任务和循环定时任务。Alarm在系统休眠的情况下可以正常工作,并且还可以决定是否唤醒系统。同时,Alarm在自身不启动的情况下,仍能正常收到定时任务提醒。
Android系统中,通过AlarmManagerService服务组件对应用程序的所有Alarm进行管理。Alarm分为精确性质和非精确性质,非精确性质的Alarm包括系统自动同步的Alarm、指定同步长度的Alarm。每个应用程序中涉及到多个Alarm,尤其是多个到时时间相邻的Alarm,频繁唤醒系统,从而影响待机时间。
发明内容
本发明提供的技术方案如下:
本发明提供的一种Android系统中Alarm的控制方法,包括以下步骤:S10、根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;S30、当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间,对所述应用程序中的多个Alarm进行同步控制;S40、当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间,对所述应用程序中的多个Alarm进行同步控制。
进一步,所述步骤S10进一步包括:S11、根据所述应用程序中Alarm所对应的同步控制类型,对所述应用程序中的Alarm标记有相应的同步类型标识;所述同步类型标识包括完全同步标识和待机同步标识;S12、生成用于添加有同步类型标识的Alarm的同步类型列表。
进一步,所述步骤S40进一步包括:S401、在所述移动终端处于待机状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;S402、将相邻多个Alarm的原始到时时间同步成一个Alarm的待机同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设待机同步时间内的多个Alarm;S403、根据Alarm同步后的待机同步到时时间,多个Alarm的原始重复间隔时间延长到所述预设待机同步时间;并保存每个Alarm的原始重复间隔时间。
进一步,所述步骤S40进一步包括:S41、在所述移动终端处于亮屏状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;S42、去除所述同步类型列表中所有Alarm的待机同步标识;S43、在去除所述Alarm的待机同步标识后,恢复所有Alarm的原始重复间隔时间。
进一步,所述步骤S40进一步包括:S44、根据已恢复的原始重复间隔时间,重新计算所有去除待机同步标识后的Alarm的再次到时时间。
进一步,所述步骤S30进一步包括:S301、遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为完全同步标识的Alarm;S302、将相邻多个Alarm的原始到时时间同步成为一个Alarm的完全同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设完全同步时间内的多个Alarm;S303、根据Alarm同步后的完全同步到时时间,多个Alarm的重复间隔时间延长到所述预设完全同步时间。
进一步,在所述步骤S30之前还包括:S20、读取所述应用程序所对应的身份证明信息,以及同步类型列表。
本发明还提供一种包含Android系统中Alarm的控制方法的移动终端,包括:设置模块,用于根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;同步处理模块,用于当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间,对所述应用程序中的多个Alarm进行同步控制;所述同步处理模块,还用于当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间,对所述应用程序中的多个Alarm进行同步控制。
进一步,还包括:标记处理模块,用于根据所述应用程序中Alarm所对应的同步控制类型,对所述应用程序中的Alarm标记有相应的同步类型标识;所述同步类型标识包括完全同步标识和待机同步标识;列表生成模块,用于生成用于添加有同步类型标识的Alarm的同步类型列表。
进一步,还包括:查询识别模块,用于在所述移动终端处于待机状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;同步处理模块,用于将相邻多个Alarm的原始到时时间同步成一个Alarm的待机同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设待机同步时间内的多个Alarm;所述同步处理模块,还用于根据Alarm同步后的待机同步到时时间,多个Alarm的原始重复间隔时间延长到所述预设待机同步时间;并保存每个Alarm的原始重复间隔时间。
与现有技术相比,本发明提供的一种Android系统中Alarm的控制方法及移动终端具有以下有益效果:
本发明中根据Alarm的性质类型(精确性质和非精确性质),设置精确性质Alarm和非精确性质Alarm的同步控制类型;利用预设同步时间,对多个Alarm进行同步控制,也即将多个Alarm同步成一个Alarm;会使得Alarm出现延迟或提前,但不会影响应用程序的整体运行;从而减少系统被唤醒的次数,延长移动终端的待机时间。
本发明中同步控制类型为待机同步控制时,在移动终端处于待机状态下,会对多个相邻的Alarm同步成一个Alarm,并将重复间隔时间延长至预设完全同步时间;从而减少系统被唤醒的次数。
本发明中同步控制类型为待机同步控制时,在移动终端处于亮屏状态下,恢复被同步的Alarm,使得每个Alarm按照自己的原始重复间隔时间,计算出各自新的到时时间。
本发明中同步控制类型为完全同步控制时,无论移动终端处于待机状态,还是亮屏状态;都会对多个相邻的Alarm同步成一个Alarm,并将重复间隔时间延长至预设完全同步时间;从而减少系统被唤醒的次数。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种Android系统中Alarm的控制方法及移动终端的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明一种Android系统中Alarm的控制方法的流程示意图;
图2是本发明Android系统中Alarm的控制方法的部分流程示意图;
图3是本发明中步骤S30的流程示意图;
图4是本发明中步骤S40的流程示意图;
图5是本发明中步骤S40的流程示意图;
图6是本发明一种移动终端的结构示意图;
图7是本发明另一种Android系统中Alarm的控制方法的一部分流程示意图;
图8是本发明另一种Android系统中Alarm的控制方法的又一部分流程示意图。
附图标号说明:
10、设置模块,11、标记处理模块,20、读取模块,30、同步处理模块,31、查询识别模块,40、恢复模块,50、计算模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
如图1所示,根据本发明的一个实施例,一种Android系统中Alarm的控制方法,包括以下步骤:
S10、根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;所述性质类型包括精准类型和非精准类型,非精准类型Alarm包括系统自动同步Alarm和指定同步长度Alarm;所述同步控制类型包括完全同步控制和待机同步控制;
S30、当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间(例如预设完全同步时间可以设置为5分钟或10分钟等),对所述应用程序中的多个Alarm进行同步控制;
S40、当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间(例如预设待机同步时间可以设置为5分钟或8分钟等),对所述应用程序中的多个Alarm进行同步控制。
具体的,预设完全同步时间和预设待机同步时间可以相同,Android系统中,通过AlarmManagerService服务组件对应用程序中的所有Alarm进行管理。应用程序可以通过AlarmManagerService提供的接口设置精确性质Alarm、系统自动同步Alarm、指定同步长度Alarm,对于系统自动同步和指定同步长度的非精确性质的Alarm,AlarmManagerService会根据系统当前设置的Alarm情况,将多个到时时间相邻的Alarm同步成一个Alarm,这样可以减少由于Alarm过多导致系统频繁被唤醒,从而影响待机时间。
本发明提供了一种用户可优化配置的Alarm同步控制方式,用户通过界面来选择哪些应用程序的Alarm被同步,在设置应用程序中的Alarm时,不管其设置的是精确性质Alarm,还是非精准性质Alarm,AlarmManagerService都会将这些Alarm进行同步,与相邻的Alarm进行综合,这样会有效的减少待机状态下被唤醒的次数,从而延长待机时间,优化系统功耗。
如图1、图2所示,根据本发明的一个实施例,一种Android系统中Alarm的控制方法,包括以下步骤:
S10、根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;所述性质类型包括精准类型和非精准类型,非精准类型Alarm包括系统自动同步Alarm和指定同步长度Alarm;所述同步控制类型包括完全同步控制和待机同步控制;
所述步骤S10进一步包括:S11、根据所述应用程序中Alarm所对应的同步控制类型,对所述应用程序中的Alarm标记有相应的同步类型标识;所述同步类型标识包括完全同步标识和待机同步标识;S12、生成用于添加有同步类型标识的Alarm的同步类型列表。
优选的,还包括S20、读取所述应用程序所对应的身份证明信息UID,以及同步类型列表。
S30、当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间(例如预设完全同步时间可以设置为5分钟或10分钟等),对所述应用程序中的多个Alarm进行同步控制;
S40、当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间(例如预设待机同步时间可以设置为5分钟或8分钟等),对所述应用程序中的多个Alarm进行同步控制。
具体的,是对安装在移动终端上第三方应用程序进行同步控制,不对系统应用程序进行同步控制;由于系统APP关系到系统运行的稳定性。对于安装的第三方APP,UID信息是唯一的,可以用来区分不同的APP,当用户进行一次应用程序同步控制选择操作后,在SharedPreference的存储中形成一个UID和同步方式列表,AlarmManagerService通过SharedPreference读取APP的UID以及该APP所对应的同步类型列表,然后可以进行相关的Alarm同步操作。
如图1、图2、图3、图4所示,根据本发明的一个实施例,一种Android系统中Alarm的控制方法,包括以下步骤:
S10、根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;所述性质类型包括精准类型和非精准类型,非精准类型Alarm包括系统自动同步Alarm和指定同步长度Alarm;所述同步控制类型包括完全同步控制和待机同步控制;
优选的,所述步骤S10进一步包括:S11、根据所述应用程序中Alarm所对应的同步控制类型,对所述应用程序中的Alarm标记有相应的同步类型标识;所述同步类型标识包括完全同步标识和待机同步标识;S12、生成用于添加有同步类型标识的Alarm的同步类型列表。
优选的,还包括S20、读取所述应用程序所对应的身份证明信息UID,以及同步类型列表。
S30、当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间(例如预设完全同步时间可以设置为5分钟或10分钟等),对所述应用程序中的多个Alarm进行同步控制;
所述步骤S30进一步包括:S301、遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为完全同步标识的Alarm;
S302、将相邻多个Alarm的原始到时时间同步成为一个Alarm的完全同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设完全同步时间内的多个Alarm;
S303、根据Alarm同步后的完全同步到时时间,多个Alarm的重复间隔时间延长到所述预设完全同步时间。
S40、当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间(例如预设待机同步时间可以设置为5分钟或8分钟等),对所述应用程序中的多个Alarm进行同步控制。
所述步骤S40进一步包括:S401、在所述移动终端处于待机状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;
S402、将相邻多个Alarm的原始到时时间同步成一个Alarm的待机同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设待机同步时间内的多个Alarm;
S403、根据Alarm同步后的待机同步到时时间,多个Alarm的原始重复间隔时间延长到所述预设待机同步时间;并保存每个Alarm的原始重复间隔时间。
具体的,分别设置精准性质Alarm和非精准性质Alarm的同步控制类型,当同步控制类型为完全同步控制时,无论移动终端是否处于待机状态,将多个相邻Alarm的原始到时时间同步成为一个Alarm的完全同步到时时间;当预设完全同步时间为5分钟时,在Alarm的原始到时时间的时间间隔在5分钟内,例如原始到时时间为10:10~10:15内的所有Alarm同步到一个完全同步时间为10:15或10:13的Alarm;部分Alarm的原始到时时间会提前或延迟;再将同步到一个完全同步时间为10:15或10:13的Alarm的重复间隔时间延迟至5分钟。
当同步控制类型为待机同步控制时,移动终端处于待机状态时,将多个相邻Alarm的原始到时时间同步成为一个Alarm的待机同步到时时间;当预设待机同步时间为10分钟时,在Alarm的原始到时时间的时间间隔在5分钟内,例如原始到时时间为8:10~8:20内的所有Alarm同步到一个待机同步时间为8:15或8:20的Alarm;部分Alarm的原始到时时间会提前或延迟;再将同步到一个待机同步时间为8:15或8:20的Alarm的重复间隔时间延迟至5分钟。
如图1~图5所示,根据本发明的一个实施例,一种Android系统中Alarm的控制方法,包括以下步骤:
S10、根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;所述性质类型包括精准类型和非精准类型,非精准类型Alarm包括系统自动同步Alarm和指定同步长度Alarm;所述同步控制类型包括完全同步控制和待机同步控制;
优选的,所述步骤S10进一步包括:S11、根据所述应用程序中Alarm所对应的同步控制类型,对所述应用程序中的Alarm标记有相应的同步类型标识;所述同步类型标识包括完全同步标识和待机同步标识;S12、生成用于添加有同步类型标识的Alarm的同步类型列表。
优选的,还包括S20、读取所述应用程序所对应的身份证明信息UID,以及同步类型列表。
S30、当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间(例如预设完全同步时间可以设置为5分钟或10分钟等),对所述应用程序中的多个Alarm进行同步控制;
所述步骤S30进一步包括:S301、遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为完全同步标识的Alarm;
S302、将相邻多个Alarm的原始到时时间同步成为一个Alarm的完全同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设完全同步时间内的多个Alarm;
S303、根据Alarm同步后的完全同步到时时间,多个Alarm的重复间隔时间延长到所述预设完全同步时间。
S40、当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间(例如预设待机同步时间可以设置为5分钟或8分钟等),对所述应用程序中的多个Alarm进行同步控制。
所述步骤S40进一步包括:S401、在所述移动终端处于待机状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;
S402、将相邻多个Alarm的原始到时时间同步成一个Alarm的待机同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设待机同步时间内的多个Alarm;
S403、根据Alarm同步后的待机同步到时时间,多个Alarm的原始重复间隔时间延长到所述预设待机同步时间;并保存每个Alarm的原始重复间隔时间。
所述步骤S40进一步包括:S41、在所述移动终端处于亮屏状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;
S42、去除所述同步类型列表中所有Alarm的待机同步标识;
S43、在去除所述Alarm的待机同步标识后,恢复所有Alarm的原始重复间隔时间。
S44、根据已恢复的原始重复间隔时间,重新计算所有去除待机同步标识后的Alarm的再次到时时间。
具体的,当同步控制类型为待机同步控制时,当移动终端处于亮屏状态下,PowerManagerService调用AlarmManagerService中的接口函数notifyAutoSleepState通知AlarmManagerService屏幕已经点亮,可以进行Alarm的恢复操作。notifyAutoSleepState函数会调用cancelAlarmSync函数来进行操作。
遍历Batch列表mAlarmBatches中的所有Alarm,由于在进行Alarm的设置时,会对待机同步控制的Alarm标记有待机同步标识,只需要检查Alarm的待机同步标识(即可判断该Alarm是否进行过待机同步控制操作)。根据保存的Alarm的重复时间间隔Interval值来恢复正常的Interval值,去除待机同步标识。
重新将Alarm添加到Batch列表中,重新设置最近的Batch到时时间到底层。在重新添加到Batch列表中时,会根据Alarm的Interval值重新计算Alarm的到时时间,从而恢复到Alarm的正常状态。
根据本发明的一个实施例,一种移动终端,包括:设置模块10,用于根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;所述性质类型包括精准类型和非精准类型,非精准类型Alarm包括系统自动同步Alarm和指定同步长度Alarm;所述同步控制类型包括完全同步控制和待机同步控制;
同步处理模块30,用于当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间(例如预设完全同步时间可以设置为5分钟或10分钟等),对所述应用程序中的多个Alarm进行同步控制;
所述同步处理模块30,还用于当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间(例如预设待机同步时间可以设置为5分钟或8分钟等),对所述应用程序中的多个Alarm进行同步控制。
如图6所示,根据本发明的另一个实施例,一种移动终端,包括:设置模块10,用于根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;所述性质类型包括精准类型和非精准类型,非精准类型Alarm包括系统自动同步Alarm和指定同步长度Alarm;所述同步控制类型包括完全同步控制和待机同步控制;
优选的,还包括:标记处理模块11,用于根据所述应用程序中Alarm所对应的同步控制类型,对所述应用程序中的Alarm标记有相应的同步类型标识;所述同步类型标识包括完全同步标识和待机同步标识;生成模块,用于生成用于添加有同步类型标识的Alarm的同步类型列表。
优选的,还包括读取模块20,用于读取所述应用程序所对应的身份证明信息UID,以及同步类型列表。
同步处理模块30,用于当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间(例如预设完全同步时间可以设置为5分钟或10分钟等),对所述应用程序中的多个Alarm进行同步控制;
优选的,还包括查询识别模块31,用于遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为完全同步标识的Alarm;
所述同步处理模块30,还用于将相邻多个Alarm的原始到时时间同步成为一个Alarm的完全同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设完全同步时间内的多个Alarm;
所述同步处理模块30,还用于根据Alarm同步后的完全同步到时时间,多个Alarm的重复间隔时间延长到所述预设完全同步时间。
所述同步处理模块30,还用于当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间(例如预设待机同步时间可以设置为5分钟或8分钟等),对所述应用程序中的多个Alarm进行同步控制。
所述查询识别模块31,还用于在所述移动终端处于待机状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;
所述同步处理模块30,还用于将相邻多个Alarm的原始到时时间同步成一个Alarm的待机同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设待机同步时间内的多个Alarm;
所述同步处理模块30,还用于根据Alarm同步后的待机同步到时时间,多个Alarm的原始重复间隔时间延长到所述预设待机同步时间;并保存每个Alarm的原始重复间隔时间。
所述查询识别模块31,还用于在所述移动终端处于亮屏状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;
所述标记处理模块11,还用于去除所述同步类型列表中所有Alarm的待机同步标识;
恢复模块40,用于在去除所述Alarm的待机同步标识后,恢复所有Alarm的原始重复间隔时间。
计算模块50,用于根据已恢复的原始重复间隔时间,重新计算所有去除待机同步标识后的Alarm的再次到时时间。
如图7、图8所示,根据本发明的一个实施例,一种Android系统中Alarm的控制方法,包括以下步骤:界面设置、屏幕关闭和点亮控制、屏灭状态下的已经设置的Alarm同步、新设置的Alarm同步过程、屏幕点亮后的Alarm恢复。
界面设置,界面设置采取普通的复选框设置,由于系统APP关系到系统运行的稳定性,这里只针对第三方APP进行同步设置。通过SharedPreference对APP选择信息进行保存,保存APP对应的UID信息以及同步方式(完全同步、待机同步),对于安装的第三方APP,UID信息是唯一的,可以用来区分不同的APP,当用户进行一次应用选择操作后,在SharedPreference的存储中形成一个UID和同步方式列表,AlarmManagerService通过SharedPreference读取用户设置的APP的UID和同步方式列表,然后可以进行相关的Alarm同步操作。
屏幕关闭和点亮控制,屏幕的关闭和点亮在PowerManagerService中进行控制,当屏幕关闭和点亮时,PowerManagerService需要调用AlarmManagerService提供的接口函数notifyAutoSleepState来通知AlarmManagerService进行相关操作。具体实现在PowerManagerService的setWakefulnessLocked函数中:
notifyAutoSleepState函数只有一个参数,为true标识屏幕关闭,系统要进入AutoSleep待机状态,为false标识屏幕点亮,系统要退出AutoSleep状态。当屏幕点亮时,则调用cancelAlarmSync函数来取消待机同步类型的Alarm,当屏幕关闭时,则调用setAlarmSync函数来对待机同步类型的Alarm进行同步操作。
屏灭状态下的已经设置的Alarm同步:相关操作在setAlarmSync函数中进行,首先通过SharedPreference读取界面设置的UID和同步类型列表,依次遍历Batch列表中所有的Alarm,对于UID匹配并且同步类型为待机同步的Alarm,则设置Alarm的同步标识并保留原有的重复Alarm的时间间隔Internal值,然后将其精确到时时间和重复Alarm的时间间隔延长到五分钟的时间点上。之后重新将所有的Alarm添加到Batch列表中,构建新的Batch列表,然后重新设置最近的Batch时间到底层。
新设置的Alarm同步过程:对于新设置的Alarm,在AlarmManagerService的setImpl函数中进行,首先通过SharedPreference来读取UID和同步类型列表,然后与应用设置的Alarm进行匹配,如果UID相同,则根据同步类型进行对应的操作。对于完全同步类型的Alarm,则将Alarm的精确到时时间和重复Alarm的时间间隔延长到五分钟的整数倍,对于待机同步类型的Alarm,则只有在屏幕灭掉的情况下,才需要将Alarm的精确到时时间和重复Alarm的时间间隔延长到五分钟的整数倍,并设置Alarm的同步标志以及原始的重复Alarm的时间间隔,以便屏幕点亮后将待机同步类型的Alarm恢复到正常的Alarm。
屏幕点亮后的Alarm恢复:屏幕点亮后,PowerManagerService调用AlarmManagerService中的接口函数notifyAutoSleepState通知AlarmManagerService屏幕已经点亮,可以进行Alarm恢复操作。notifyAutoSleepState函数会调用cancelAlarmSync函数来进行操作。首先遍历Batch列表mAlarmBatches中的所有Alarm,由于在进行进行Alarm的设置时,会对待机同步的Alarm进行同步标志设置,这里只需要检查Alarm对应的同步标志即可判断是否进行过待机同步操作,然后根据保存的重复Alarm的时间间隔Interval值来恢复正常的Interval值,去除同步标志,然后重新将Alarm添加到Batch列表中,重新设置最近的Batch到时时间到底层。在重新添加到Batch列表中时,会根据Alarm的Interval值重新计算Alarm的到时时间,从而恢复到Alarm的正常状态。
具体的,用户通过界面选择需要同步的应用,应用分为两种性质,即完全同步的应用和待机同步应用,完全同步应用即不管手机处于什么状态,都将对该应用下的Alarm进行同步,待机同步应用则只有在屏灭的情况下才会对其设置的Alarm进行同步,一旦屏亮则恢复成正常的Alarm。界面通过Android系统的SharedPreference进行存储,以UID来标识具体的应用。应用进行Alarm设置时,会读取SharedPreference中配置的UID值和同步类型,对于匹配上的应用,则根据同步类型进行五分钟同步操作。对于待机同步类型,如果当前屏幕是点亮的,则不进行操作,如果当前屏幕是灭掉的,则进行五分钟同步操作,在Alarm到时之前,用户点亮屏幕,则重新恢复该类型Alarm的正常设置,当屏幕灭掉时,再进行五分钟同步操作。
Android系统现有的AlarmManagerService提供的接口,可能应用都会使用精确性质的Alarm接口,而不使用同步性质的Alarm接口,导致Alarm的同步效果很有限。针对这些问题,本发明提供了用户选择界面,AlarmManagerService根据用户选择的情况,在对应的应用设置Alarm时,跟根据Batch中的Alarm情况,将Alarm的时间间隔调整为五分钟的整数倍,这样很多应用的Alarm都会在五分钟的滴答时间上进行操作,这样会有效减少系统在待机状态下被唤醒的次数,从而延长待机时间,优化系统功耗。
Android系统中,设置了三种Alarm类型供应用使用,应用可以通过AlarmManagerService提供的接口设置精确性质Alarm、系统自动同步的Alarm、指定同步长度的Alarm。为了区分这三种类型的Alarm,在AlarmManagerService的接口函数setImpl函数中,新增加了long windowLength参数,当windowLength为0时,标致该Alarm为精确性质的,AlarmManagerService不能调整Alarm设置的时间,到时后必须上报给应用;当windowLength为-1时,标识该Alarm为系统自动同步的Alarm,AlarmManagerService会根据实际情况来自动调整Alarm的到时时间,可能提前也可能推后;当windowLength大于0时,标识该Alarm是指定同步长度的Alarm,AlarmManagerService会根据windowLength的大小以及处于该时间窗口长度附近的Alarm的相关情况,将多个Alarm放到一个Batch中进行同步。
AlarmManagerService中定义了Batch数组mAlarmBatches:
final ArrayList<Batch>mAlarmBatches=new ArrayList<Batch>();
mAlarmBatches中的Batch列表是按时间顺序进行排列,最先到时的Batch排在最前面,当Batch中的Alarm发生变化(添加新的Alarm或删除旧的Alarm)导致了Batch的时间发生变化时,需要重新对mAlarmBatches进行排序,并重新设置新的到时时间到底层。
Batch的数据结构中的四个成员:
long start;
long end;
boolean standalone;
final ArrayList<Alarm>alarms=new ArrayList<Alarm>();
start标明Batch的起始时间,也就是具体的Alarm到时时间。
end标明了Batch综合的所有Alarm的最迟的结束时间。
standalone标明该Batch只有一个Alarm,即精确性质的Alarm,所有综合的Alarm不允许添加进来。
alarms标识Batch中所有的Alarm。
上层APP通过调用AlarmManager.java中的多个接口函数来进行Alarm的设置,最终都是通过Binder接口调用AlarmManagerService中的setImpl函数来实现Alarm的设置,setImpl函数定义如下:
void setImpl(int type,long triggerAtTime,long windowLength,longinterval,
PendingIntent operation,boolean isStandalone,WorkSource workSource,
AlarmManager.AlarmClockInfo alarmClock){
四个比较重要的参数:
long triggerAtTime:Alarm的具体精确触发时间
long windowLength:Alarm在精确触发时间之上可以调整的窗口宽度
0:标识精确性质Alarm,不进行任何性质的同步
-1:标识系统自动同步的Alarm
大于0:标识指定同步长度的Alarm
long interval:为0标识是单次闹钟,大于0标识连续闹钟的时间间隔
boolean isStandalone:标识该闹钟是否进行综合,只有当windowLength为0时,才为true。
AlarmManagerService的setImpl函数最重要的是根据以上四个重要参数计算出Alarm实际能够扩展的最大到时时间,即maxElapsed。对于精确性质的Alarm,maxElapsed即为triggerAtTime,Alarm没有任何时间扩展。对于系统自动同步的Alarm,如果interval为0,即单次闹钟,maxElapsed为Alarm精确到时时间triggerAtTime加上与当前时间间隔的0.75倍,如果interval大于0,即连续闹钟,maxElapsed为Alarm精确到时时间triggerAtTime加上interval的0.75倍。对于指定同步长度的Alarm,maxElapsed为Alarm精确到时时间triggerAtTime加上windowLength。之后将Alarm加入到Batch当中,对于精确性质的Alarm,直接创建新的Batch,该Batch只能加入该精确性质的闹钟,Batch中的standalone成员设置为ture,不允许其他Alarm加入进来。对于能够同步的Alarm,则根据其精确到时时间triggerAtTime和最大的到时时间maxElapsed从Batch列表mAlarmBatches中根据条件找到合适的Batch,该条件必须满足Batch中的结束时间end必须大于等于Alarm的精确到时时间triggerAtTime,同时Batch中的起始时间start必须小于等于Alarm的最大到时时间maxElapsed,如果没有满足该条件的Batch,则创建新的Batch,将Alarm添加到Batch中,Batch中的start赋值为Alarm的精确到时时间triggerAtTime,end赋值为Alarm的最大到时时间maxElapsed。对于满足条件可以添加的Batch,如果Alarm的精确到时时间triggerAtTime大于Batch的起始时间start,则将Batch的start赋值为Alarm的精确到时时间triggerAtTime,如果Alarm的最大到时时间maxElapsed小于Batch的结束时间end,则将Batch的end赋值为Alarm的最大到时时间maxElapsed。如果Batch的start值发生了变化,则重新对所有的Batch进行排序,并设置新的最近的Batch到时时间到底层。当Batch的时间到时时,该Batch下的所有Alarm都认为到时了,Alarm对应的应用会收到Alarm到时的回调函数,并进行Alarm到时的相关处理。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种Android系统中Alarm的控制方法,其特征在于,包括以下步骤:
S10、根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;
S30、当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间,对所述应用程序中的多个Alarm进行同步控制;
S40、当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间,对所述应用程序中的多个Alarm进行同步控制。
2.如权利要求1所述的Android系统中Alarm的控制方法,其特征在于,所述步骤S10进一步包括:
S11、根据所述应用程序中Alarm所对应的同步控制类型,对所述应用程序中的Alarm标记有相应的同步类型标识;所述同步类型标识包括完全同步标识和待机同步标识;
S12、生成用于添加有同步类型标识的Alarm的同步类型列表。
3.如权利要求2所述的Android系统中Alarm的控制方法,其特征在于,所述步骤S40进一步包括:
S401、在所述移动终端处于待机状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;
S402、将相邻多个Alarm的原始到时时间同步成一个Alarm的待机同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设待机同步时间内的多个Alarm;
S403、根据Alarm同步后的待机同步到时时间,多个Alarm的原始重复间隔时间延长到所述预设待机同步时间;并保存每个Alarm的原始重复间隔时间。
4.如权利要求3所述的Android系统中Alarm的控制方法,其特征在于,所述步骤S40进一步包括:
S41、在所述移动终端处于亮屏状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;
S42、去除所述同步类型列表中所有Alarm的待机同步标识;
S43、在去除所述Alarm的待机同步标识后,恢复所有Alarm的原始重复间隔时间。
5.如权利要求4所述的Android系统中Alarm的控制方法,其特征在于,所述步骤S40进一步包括:
S44、根据已恢复的原始重复间隔时间,重新计算所有去除待机同步标识后的Alarm的再次到时时间。
6.如权利要求2所述的Android系统中Alarm的控制方法,其特征在于,所述步骤S30进一步包括:
S301、遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为完全同步标识的Alarm;
S302、将相邻多个Alarm的原始到时时间同步成为一个Alarm的完全同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设完全同步时间内的多个Alarm;
S303、根据Alarm同步后的完全同步到时时间,多个Alarm的重复间隔时间延长到所述预设完全同步时间。
7.如权利要求1~6中任意一项所述所述的Android系统中Alarm的控制方法,其特征在于,在所述步骤S30之前还包括:
S20、读取所述应用程序所对应的身份证明信息,以及同步类型列表。
8.一种包含如权利要求1~7中任意一项所述的Android系统中Alarm的控制方法的移动终端,其特征在于,包括:
设置模块,用于根据移动终端上应用程序中Alarm的性质类型,预先设置所述应用程序中Alarm所对应的同步控制类型;
同步处理模块,用于当同步控制类型为完全同步控制时,根据Alarm的原始到时时间以及预设完全同步时间,对所述应用程序中的多个Alarm进行同步控制;
所述同步处理模块,还用于当同步控制类型为待机同步控制时,在所述移动终端处于待机状态下,根据Alarm的原始到时时间以及预设待机同步时间,对所述应用程序中的多个Alarm进行同步控制。
9.如权利要求8所述的移动终端,其特征在于,还包括:
标记处理模块,用于根据所述应用程序中Alarm所对应的同步控制类型,对所述应用程序中的Alarm标记有相应的同步类型标识;所述同步类型标识包括完全同步标识和待机同步标识;
列表生成模块,用于生成用于添加有同步类型标识的Alarm的同步类型列表。
10.如权利要求8或9所述的移动终端,其特征在于,还包括:
查询识别模块,用于在所述移动终端处于待机状态下,遍历同步类型列表中的所有Alarm,识别出所述同步类型标识为待机同步标识的Alarm;
同步处理模块,用于将相邻多个Alarm的原始到时时间同步成一个Alarm的待机同步到时时间;相邻多个Alarm是指:其原始到时时间的时间间隔在所述预设待机同步时间内的多个Alarm;
所述同步处理模块,还用于根据Alarm同步后的待机同步到时时间,多个Alarm的原始重复间隔时间延长到所述预设待机同步时间;并保存每个Alarm的原始重复间隔时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610856403.5A CN106412284A (zh) | 2016-09-27 | 2016-09-27 | 一种Android系统中Alarm的控制方法及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610856403.5A CN106412284A (zh) | 2016-09-27 | 2016-09-27 | 一种Android系统中Alarm的控制方法及移动终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106412284A true CN106412284A (zh) | 2017-02-15 |
Family
ID=57996762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610856403.5A Pending CN106412284A (zh) | 2016-09-27 | 2016-09-27 | 一种Android系统中Alarm的控制方法及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106412284A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218033A (zh) * | 2013-03-28 | 2013-07-24 | 北京小米科技有限责任公司 | 一种唤醒硬件设备的方法及装置 |
CN104052861A (zh) * | 2013-03-14 | 2014-09-17 | 腾讯科技(深圳)有限公司 | 一种终端及其唤醒方法 |
CN105867577A (zh) * | 2015-12-04 | 2016-08-17 | 乐视移动智能信息技术(北京)有限公司 | 一种终端唤醒方法及终端 |
-
2016
- 2016-09-27 CN CN201610856403.5A patent/CN106412284A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052861A (zh) * | 2013-03-14 | 2014-09-17 | 腾讯科技(深圳)有限公司 | 一种终端及其唤醒方法 |
CN103218033A (zh) * | 2013-03-28 | 2013-07-24 | 北京小米科技有限责任公司 | 一种唤醒硬件设备的方法及装置 |
CN105867577A (zh) * | 2015-12-04 | 2016-08-17 | 乐视移动智能信息技术(北京)有限公司 | 一种终端唤醒方法及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ATE410857T1 (de) | Verfahren zum implementieren der echtzeitsynchronisation von konfigurationsdaten zwischen einem netzwerkverwaltungssystem und einer netzwerkelementeinrichtung | |
CN102004543B (zh) | 一种实现cpu节能的方法及装置 | |
CN101772212B (zh) | 一种在移动终端上对多应用进行统一管理的方法及装置 | |
CN103930874B (zh) | 使用经调度资源组转变通过对便携式计算装置的工作负载估计而节省功率 | |
CN105850229B (zh) | 用于信号发射器模块化安装的可编程模块和驱动安装的方法 | |
CN102750630B (zh) | 自动调整闹钟的方法和装置 | |
CN103583012B (zh) | 心跳行为的同步方法和装置 | |
EP4220354A1 (en) | Application management method and terminal | |
CN102769504B (zh) | 一种1588系统及其实现同步的方法 | |
RU2007147631A (ru) | Развертывание решений в ферме серверов | |
CN105281884B (zh) | 一种无中心网络中的节点时间同步方法 | |
CN102938103A (zh) | 项目管理过程中的计划信息同步系统及方法 | |
CN109558065A (zh) | 数据删除方法及分布式存储系统 | |
CN107678923A (zh) | 一种分布式文件系统消息处理的优化方法 | |
CN103297985A (zh) | 基站配置方法及系统 | |
CN105553591B (zh) | 一种分布式计算机系统节点同步方法 | |
CN102929983B (zh) | 嵌入式数据库同步到flash数据库的方法和装置 | |
CN102023899A (zh) | 多线程数据同步方法及装置 | |
CN103488695A (zh) | 数据同步装置和数据同步方法 | |
CN106412284A (zh) | 一种Android系统中Alarm的控制方法及移动终端 | |
CN102916799A (zh) | 一种ntp服务器时间同步的方法 | |
SG140455A1 (en) | Method and system of classifying demand data | |
DE60141079D1 (de) | Verfahren zur verwaltung von netzelementeinstellungen | |
CN104281932A (zh) | 智能抓班的装置和方法 | |
CN103546269B (zh) | 一种同步时间报文的筛选方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170215 |
|
WD01 | Invention patent application deemed withdrawn after publication |