本发明涉及终端应用技术领域,特别是涉及一种计时功能的实现方法及系统。
背景技术:
随着APP(APPlication,应用)的业务逐渐复杂和深入,APP的功能日渐全面,客户希望借助APP实现线上的一些活动的限时展示和实时业务操作功能;例如APP中的广告页、登录使用的验证码等。
目前,针对任何需要倒计时的产品,例如拍卖APP,在研发过程中需根据具体产品的需求定制开发显示工具。在开发过程中,因为不同产品的业务需求不同,因此,在开发每个产品的显示工具时,需要根据产品需求,预先确定好UI(User Interface,用户界面)和时间值,在时间实时改变的同时,结合业务操作进行限时展示。由于UI和初始时间值固定写死在业务代码的程序中,当需要在另外的界面或者需要动态调整初始时间值的时候需要再写一套一样的代码,所以耦合性强,冗余代码多,并且不支持由于程序本身所导致的自动校准,精确性较差,而且业务复杂的时候需要多次进行启停的操作,从而使系统性能消耗增加,且界面展示不流畅,用户体验较差。
技术实现要素:
为了克服上述现有技术的缺陷,本发明要解决的技术问题是提供一种计时功能的实现方法及系统。
为解决上述技术问题,本发明中的一种计时功能的实现方法,包括:
主UI程序继承获取的时钟SDK;
所述主UI程序调用与预设的业务功能对应的所述时钟SDK的计时接口;
所述主UI程序在接收到被调用的计时接口的计时完成信号时,进行主UI界面的更新。
可选地,所述主UI程序调用与预设的业务功能对应的所述时钟SDK的计时接口,包括:
所述主UI程序通过预先绑定在主线程的Handler与所述时钟SDK进行消息通讯;
通过消息调用与所述业务功能对应的所述时钟SDK的计时接口。
具体地,所述主UI程序在接收到被调用的计时接口的计时完成信号时,进行主UI界面的更新,包括:
当所述Handler接收到所述被调用的计时接口发送的计时完成消息时,所述UI程序进行所述主UI界面的更新。
具体地,所述当所述Handler接收到所述被调用的计时接口发送的计时完成消息时之前,还包括:
所述被调用的计时接口计算发送计时完成消息的延时;
所述被调用的计时接口在计时操作时,根据所述延时修正所述业务功能对应的计时时长,当计时操作完成时,向所述Handler发送计时完成消息。
可选地,所述时钟SDK具有的计时接口包括时钟计时接口、倒计时接口以及设置倒计时的计时时长、开始时间和结束时间的接口。
为解决上述技术问题,本发明中的一种计时功能的实现系统,所述系统包括主UI程序和时钟SDK:
所述主UI程序,用于继承获取的时钟SDK;
调用与预设的业务功能对应的所述时钟SDK的计时接口;
在接收到被调用的计时接口的计时完成消息时,进行主UI界面的更新。
可选地,调用与所述业务功能对应的所述时钟SDK的计时接口,包括:
通过预先绑定在主线程的Handler与所述时钟SDK进行消息通讯;
通过消息调用与所述业务功能对应的所述时钟SDK的计时接口。
具体地,所述在接收到被调用的计时接口的计时完成消息时,进行主UI界面的更新,包括:
当所述Handler接收到所述被调用的计时接口发送的计时完成消息时,进行所述主UI界面的更新。
具体地,所述时钟SDK的被调用的计时接口,用于计算发送计时完成消息的延时;
根据所述延时修正所述业务功能对应的计时时长,并进行计时操作,当计时操作完成时,向所述Handler发送计时完成消息。
可选地,所述时钟SDK具有的计时接口包括时钟计时接口、倒计时接口以及设置倒计时的计时时长、开始时间和结束时间的接口。
本发明有益效果如下:
本发明方法及系统中主UI程序通过继承时钟SDK,然后根据业务功能的需求调用时钟SDK的计时API接口,并与被调用的计时接口进行通讯,从而使研发过程中,不需要再编写或编写少量代码即可完成产品的需求,并且达到代码解耦,统一管理,提到效率;并实现在任何基于Android系统终端的APP只需要继承时钟SDK库就可以轻松实现各种花样繁多的倒计时界面显示、声音提示和业务操作;同时本发明实施例不需要进行启停的操作,从而使系统性能消耗明显减少,且界面展示流畅,进一步提高用户体验。
附图说明
图1是本发明实施例中一种计时功能的实现方法的流程图;
图2是本发明实施例中一种计时功能的实现系统的结构示意图。
具体实施方式
为了解决现有技术存在的缺陷,本发明提供了一种计时功能的实现方法及系统,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。
如图1所示,本发明第一实施例中一种计时功能的实现方法,包括:
S101,主UI程序继承获取的时钟SDK;
S102,根据预设的业务功能,所述主UI程序调用与所述业务功能对应的所述时钟SDK的计时API接口;
S103,所述主UI程序在接收到被调用的计时接口的计时完成信号时,进行主UI界面的更新。
其中,SDK:Software Development Kit,为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。时钟SDK,指代实现时钟计时的代码库;这个库通过API可以被别的业务程序直接调用,实现各自的时钟计时等功能。
API:Application Programming Interface,为应用编程接口,留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。
UI:User Interface,为用户界面。
现有技术中UI和初始时间值固定写在业务代码的程序中,当需要在另外的界面或者需要动态调整初始时间值的时候需要再写一套一样的代码,所以耦合性强,冗余代码多;并且现有技术处理业务复杂的时候,需要多次进行启停的操作从而使系统性能消耗增加,且界面展示不流畅,用户体验较差。
本发明实施例通过提供一个可以重复使用的时钟计时SDK,后续如果用到相关功能,可以直接使用,无需多次重复编码开发。
进一步,本发明实施例中主UI程序通过继承时钟SDK,然后根据业务功能的需求调用时钟SDK的计时API接口,并与被调用的计时接口进行通讯,从而使研发过程中,不需要再编写或编写少量代码即可完成产品的需求,并且达到代码解耦,统一管理,提到效率;并实现在任何基于Android系统终端的APP只需要继承时钟SDK库就可以轻松实现各种花样繁多的倒计时界面显示、声音提示和业务操作;同时本发明实施例不需要进行启停的操作,从而使系统性能消耗明显减少,且界面展示流畅,进一步提高用户体验。
举例说明,现有技术中如果在A业务中需要用到计时功能,需要针对A的需求和显示,编码实现相关功能;如果此后,需要如果在B业务中需要用到计时功能,需要再次针对B的需求和显示,编码实现相关功能。
本发明实施例中可以通过预先编码完成一个独立的计时功能代码库(时钟SDK),提供API接口,可以被业务A、B分布调用即可,无需重复开发,可以减少代码编写。
在上述实施例的基础上,进一步提出上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在各变型实施例中仅描述与上述实施例的不同之处。
在本发明的一个实施例中,所述主UI程序调用与所述业务功能对应的所述时钟SDK的计时接口,包括:
所述主UI程序通过预先绑定在主线程的Handler与所述时钟SDK进行消息通讯;
通过消息调用与所述业务功能对应的所述时钟SDK的计时接口。
进一步说,所述主UI程序在接收到被调用的计时接口的计时完成信号时,进行主UI界面的更新,包括:
当所述Handler接收到所述被调用的计时接口发送的计时完成消息时,所述UI程序进行所述主UI界面的更新。
具体说,所述当所述Handler接收到所述被调用的计时接口发送的计时完成消息时之前,还包括:
所述被调用的计时接口计算发送计时完成消息的延时;
所述被调用的计时接口在计时操作时,根据所述延时修正所述业务功能对应的计时时长,当计时操作完成时,向所述Handler发送计时完成消息。
本发明实施例解决现有技术不支持由于程序本身所导致的自动校准,精确性较差问题,本发明实施例通过继承自定义类库,利用Handler(消息处理)机制可以进行线程和线程之间的协作处理,再结合Android系统时钟现有进行降低程序编码导致的时间误差,以达到复杂业务中APP倒计时流畅,精确的显示。
其中,所述时钟SDK具有的计时接口包括时钟计时接口、倒计时接口以及设置倒计时的计时时长、开始时间和结束时间的接口。
本发明的实现原理如下:
1.在代码开发的过程中继承时钟库(时钟SDK)。具体地,时钟SDK通过编写程序代码预先建立的;使用的过程就是调用的过程,通过API输入对应的参数,实现对应的功能。
2.实现必要方法处理个性化业务。个性化业务指代根据业务的需求,实现不同的业务功能,及编写无法共用的业务代码部门,比如实现招聘、租房、二手等不同的基础功能,以便后续在这些基础功能上加入上述的库,实现计时等共用功能。
3.针对不同UI页面传入不同类型显示控件进行个性化显示。
4.针对不同业务类型传入不同的type(类型)进行不同业务类型处理。
5.根据需要调用指定方法动态改变倒计时的起始时间和结束时间值。
以倒计时为例,说明本发明实施例。
步骤1,时钟SDK初始化倒计时器;
步骤2,倒计时器启动,判断剩余使用时间是否有效;若否,调用结束处理逻辑;若是,执行步骤3;
步骤3,开始计时;
步骤4,判断是否取消;若是,调用结束处理逻辑;若否,执行步骤5;
步骤5,重新计算剩余时间是否有效;若是,调用结束处理逻辑;若否,执行步骤6;
步骤6,调用UI方法处理具体业务逻辑,计算发送message(消息)延时,向主UI线程发送倒计时完成消息。
现有技术中无法实现从库中获取时间信息的同时实现显示的界面UI的实时变化。本发明通过首先提供独立的时钟SDK库,实现时钟、倒计时功能;同时在负责主UI程序的界面变化的主线程上绑定Handler,由Handler来负责与子线程(独立的库,进行计时等操作的子线程)进行通讯,从而让子线程与主线程之间建立起协作的桥梁,当子线程中的工作完成之后(比如时钟、计时操作),会对Handler发送一个完成的信号,而Handler接收到信号后,就进行主UI界面的更新操作。
本发明使用Android原生API实现,简单继承类库和实现必要方法即可完成复杂业务流程。代码松耦合,统一管理;提到工作效率。利用技术实现任何阶段动态赋值(支持负数),界面流畅,计时精确,性能消耗少,用户体验好。
基于提供的计时功能的实现方法,本发明进一步提出一种计时功能的实现系统。
如图2所示,本发明实施例中一种计时功能的实现系统,所述系统包括主UI程序20和时钟SDK 22:
所述主UI程序20,用于继承获取的时钟SDK;
根据预设的业务功能,调用与所述业务功能对应的所述时钟SDK的计时接口;
在接收到被调用的计时接口的计时完成信号时,进行主UI界面的更新。
在本发明的一个实施例中,调用与所述业务功能对应的所述时钟SDK的计时接口,包括:
通过预先绑定在主线程的Handler与所述时钟SDK进行消息通讯;
通过消息调用与所述业务功能对应的所述时钟SDK的计时接口。
进一步说,所述在接收到被调用的计时接口的计时完成信号时,进行主UI界面的更新,包括:
当所述Handler接收到所述被调用的计时接口发送的计时完成消息时,进行所述主UI界面的更新。
具体说,所述时钟SDK的被调用的计时接口,用于计算发送计时完成消息的延时;
根据所述延时修正所述业务功能对应的计时时长,并进行计时操作,当计时操作完成时,向所述Handler发送计时完成消息。
在本发明的另一个实施例中,所述时钟SDK具有的计时接口包括时钟计时接口、倒计时接口以及设置倒计时的计时时长、开始时间和结束时间的接口。
本发明实施例中系统使用Android原生API实现,简单继承类库和实现必要方法即可完成复杂业务流程。代码松耦合,统一管理;提到工作效率。利用技术实现任何阶段动态赋值(支持负数),界面流畅,计时精确,性能消耗少,用户体验好。
虽然本申请描述了本发明的特定示例,但本领域技术人员可以在不脱离本发明概念的基础上设计出来本发明的变型。
本领域技术人员在本发明技术构思的启发下,在不脱离本发明内容的基础上,还可以对本发明的方法做出各种改进,这仍落在本发明的保护范围之内。