CN109582468A - 基于变量的倒计时同步方法、装置、存储介质和设备 - Google Patents
基于变量的倒计时同步方法、装置、存储介质和设备 Download PDFInfo
- Publication number
- CN109582468A CN109582468A CN201811564416.0A CN201811564416A CN109582468A CN 109582468 A CN109582468 A CN 109582468A CN 201811564416 A CN201811564416 A CN 201811564416A CN 109582468 A CN109582468 A CN 109582468A
- Authority
- CN
- China
- Prior art keywords
- countdown
- control object
- value
- variate
- updated
- 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
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Programmable Controllers (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例公开了一种基于变量的倒计时同步方法、装置、存储介质和设备。该方法包括:在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新,其中,所述第一控件对象和所述第二控件对象为需要保持倒计时同步的控件对象,所述第一倒计时对象为所述第一控件对象中的倒计时对象,所述倒计时共享变量用于存储所述第一倒计时对象中的倒计时信息;若是,则所述第一控件对象触发启动所述第二控件对象,并将更新后的变量值发送至所述第二控件对象;所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。通过上述技术方案,一定程度上提高了不同控件对象之间的倒计时同步性。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种基于变量的倒计时同步方法、装置、存储介质和设备。
背景技术
Android系统中通常有需要保持多个控件之间的倒计时同步的业务需求,例如对于倒计时抽奖的业务,要求碎片控件Fragment与布局在Fragment中的对话框控件Dialog之间保持倒计时同步。
现有技术中,倒计时同步的实现方案是每个控件各自维护一个独立的倒计时对象,各个倒计时对象之间传递表征倒计时剩余时长的参数millisUntilFinished的值。例如,Fragment中设置一个倒计时对象,Dialog中设置另一个倒计时对象,每个倒计时对象均需设置两个倒计时参数,分别为总计时时间allTime和计时速度时间tiggerTime。当Fragment启动时,Fragment中的倒计时对象被触发,便基于设定的allTime1开始倒计时,并根据设定的tiggerTime1自动更新倒计时剩余时长millisUntilFinished1。当Fragment监测到Dialog点击操作而启动Dialog时,为了保证Dialog启动时刻两个控件中的倒计时同步,将Fragment中的当前倒计时剩余时长millisUntilFinished1参数值传递至Dialog。Dialog将其倒计时对象中的allTime2设置为接收到的millisUntilFinished1参数值,之后便基于allTime2同步开始倒计时。
上述方案中,由于Fragment中的倒计时从未中断或暂停,所以在Dialog启动时刻,Fragment中的倒计时起点时间和Dialog中的倒计时起点时间之间存在一个时间差,该时间差对应于从Fragment中的倒计时剩余时长更新为当前倒计时剩余时长开始到向Dialog传递当前倒计时剩余时长结束的时间段,最大时间差为Fragment中的tiggerTime1,这就使得两个控件之间的倒计时无法保持同步。
发明内容
本发明实施例提供一种基于变量的倒计时同步方法、装置、存储介质和设备,以实现一定程度上提高不同控件之间的倒计时同步性。
第一方面,本发明实施例提供了一种基于变量的倒计时同步方法,包括:
在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新,其中,所述第一控件对象和所述第二控件对象为需要保持倒计时同步的控件对象,所述第一倒计时对象为所述第一控件对象中的倒计时对象,所述倒计时共享变量用于存储所述第一倒计时对象中的倒计时信息;
若是,则所述第一控件对象触发启动所述第二控件对象,并将更新后的变量值发送至所述第二控件对象;
所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。
可选地,更新第一倒计时对象中的倒计时共享变量的变量值包括:
在所述第一倒计时对象的倒计时函数中,依据所述倒计时函数的当前函数输入参数值或计时速度时间和所述计时速度时间的当前执行次数的当前乘积,更新所述倒计时共享变量的变量值;
其中,所述计时速度时间为基于系统倒计时类创建所述第一倒计时对象的倒计时参数。
进一步地,在所述倒计时信息为倒计时剩余时长时,依据所述倒计时函数的当前函数输入参数值或计时速度时间和所述计时速度时间的当前执行次数的当前乘积,更新所述倒计时共享变量的变量值包括:
依据第一总计时时间以及所述当前乘积,更新所述倒计时共享变量的变量值,其中,所述第一总计时时间为基于系统倒计时类创建所述第一倒计时对象的倒计时参数;或者,
将所述倒计时共享变量的变量值更新为所述倒计时函数的当前函数输入参数值;
相应地,所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时包括:
所述第二控件对象中的第二倒计时对象将第二总计时时间更新为更新后的变量值,并基于更新后的第二总计时时间同步开始倒计时,其中,所述第二总计时时间为基于系统倒计时类创建所述第二倒计时对象的倒计时参数。
进一步地,在所述倒计时信息为已倒计时长时,依据所述倒计时函数的当前函数输入参数值或计时速度时间和所述计时速度时间的当前执行次数的当前乘积,更新所述倒计时共享变量的变量值包括:
将所述倒计时共享变量的变量值更新为所述当前乘积;或者,
依据第一总计时时间与所述倒计时函数的当前函数输入参数值,更新所述倒计时共享变量的变量值;
相应地,所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时包括:
所述第二控件对象中的第二倒计时对象依据第二总计时时间和更新后的变量值更新第二总计时时间,并基于更新后的第二总计时时间同步开始倒计时,其中,所述第二总计时时间的初始值为所述第一总计时时间。
可选地,监测第二控件对象的启动触发操作包括:
当第二控件对象为人机交互类控件对象时,监测所述第二控件对象的点击操作。
可选地,在上述技术方案的基础上,该方法还包括:
若否,则在第二控件对象对应的显示区域显示预设缓存画面;
若是,则隐藏所述预设缓存画面,并在所述显示区域显示所述第二控件对象对应的显示画面。
可选地,所述第一控件对象为Android系统中的碎片控件对象,所述第二控件对象为所述Android系统中的对话框控件对象。
第二方面,本发明实施例还提供了一种基于变量的倒计时同步装置,该装置包括:
倒计时更新监测模块,用于在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新,其中,所述第一控件对象和所述第二控件对象为需要保持倒计时同步的控件对象,所述第一倒计时对象为所述第一控件对象中的倒计时对象,所述倒计时共享变量用于存储所述第一倒计时对象中的倒计时信息;
变量值发送模块,用于若是,则所述第一控件对象触发启动所述第二控件对象,并将更新后的变量值发送至所述第二控件对象;
同步倒计时模块,用于所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。
可选地,倒计时更新监测模块包括倒计时更新子模块,用于:
在所述第一倒计时对象的倒计时函数中,依据所述倒计时函数的当前函数输入参数值或计时速度时间和所述计时速度时间的当前执行次数的当前乘积,更新所述倒计时共享变量的变量值;
其中,所述计时速度时间为基于系统倒计时类创建所述第一倒计时对象的倒计时参数。
进一步地,倒计时更新子模块具体用于:
在所述倒计时信息为倒计时剩余时长时,依据第一总计时时间以及所述当前乘积,更新所述倒计时共享变量的变量值,其中,所述第一总计时时间为基于系统倒计时类创建所述第一倒计时对象的倒计时参数;或者,
将所述倒计时共享变量的变量值更新为所述倒计时函数的当前函数输入参数值;
相应地,同步倒计时模块具体用于:
所述第二控件对象中的第二倒计时对象将第二总计时时间更新为更新后的变量值,并基于更新后的第二总计时时间同步开始倒计时,其中,所述第二总计时时间为基于系统倒计时类创建所述第二倒计时对象的倒计时参数。
进一步地,倒计时更新子模块具体用于:
在所述倒计时信息为已倒计时长时,将所述倒计时共享变量的变量值更新为所述当前乘积;或者,
依据第一总计时时间与所述倒计时函数的当前函数输入参数值,更新所述倒计时共享变量的变量值;
相应地,同步倒计时模块具体用于:
所述第二控件对象中的第二倒计时对象依据第二总计时时间和更新后的变量值更新第二总计时时间,并基于更新后的第二总计时时间同步开始倒计时,其中,所述第二总计时时间的初始值为所述第一总计时时间。
可选地,倒计时更新监测模块具体用于:
当第二控件对象为人机交互类控件对象时,监测所述第二控件对象的点击操作。
可选地,在上述装置的基础上,该装置还包括显示模块,用于:
若否,则在第二控件对象对应的显示区域显示预设缓存画面;
若是,则隐藏所述预设缓存画面,并在所述显示区域显示所述第二控件对象对应的显示画面。
可选地,所述第一控件对象为Android系统中的碎片控件对象,所述第二控件对象为所述Android系统中的对话框控件对象。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的基于变量的倒计时同步方法。
第四方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的基于变量的倒计时同步方法。
本发明实施例通过在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中用于存储倒计时信息的倒计时共享变量的变量值是否更新;若是,则第一控件对象触发启动第二控件对象,并将更新后的变量值发送至第二控件对象;第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。缩小了第一控件对象和第二控件对象之间倒计时起点时间的时间差,从而更大程度上保持了第一控件对象和第二控件对象之间的倒计时同步性。
附图说明
图1是本发明实施例一中的一种基于变量的倒计时同步方法的流程图;
图2是本发明实施例二中的一种基于变量的倒计时同步方法的流程图;
图3是本发明实施例三中的一种基于变量的倒计时同步装置的结构示意图;
图4是本发明实施例四中的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
本实施例提供的基于变量的倒计时同步方法可适用于Android系统中保持多个控件之间倒计时同步的情况。该方法可以由基于变量的倒计时同步装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在搭载Android系统的设备中,例如典型的是用户终端设备,例如手机、平板电脑或智能电视等。参见图1,本实施例的方法包括:
S110、在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新。
其中,第一控件对象和第二控件对象为Android系统中需要保持倒计时同步的控件对象。应当说明的是,保持倒计时同步的控件对象可以是两个控件对象,也可以是多个控件对象,这些控件对象中第一个启动倒计时功能的控件对象便为第一控件对象,之后开启倒计时功能的至少一个控件对象便称为第二控件对象。这样,第二控件对象便可以是一个控件对象,也可以是多个控件对象。本发明实施例中以第二控件对象为一个控件对象为例进行说明。
第一倒计时对象为第一控件对象中的倒计时对象,该倒计时对象继承Android系统提供的倒计时类(即系统倒计时类)CountDownTimer,并至少复写与实现系统倒计时类中包含的倒计时启动函数start()、倒计时函数onTick()和倒计时结束函数onFinished()。在第一倒计时对象中维护一个具有全局作用域的倒计时共享变量count,用于实时存储第一倒计时对象中的倒计时信息,其代码实现可以为:private int count=0(初始值为0)。该倒计时信息用于表征第一倒计时对象中已经开启的倒计时的相关信息,例如可以是倒计时已经执行次数、倒计时已经执行的时间(即已倒计时长)和倒计时剩余时长中的至少一种。
具体地,根据上述说明,第一控件对象要先于第二控件对象开启倒计时。本实施例中,在第一控件对象的生命周期函数onCreat()中调用第一倒计时对象的倒计时启动函数start()来开启第一控件对象的倒计时。由于第一控件对象的生命周期函数onCreat()是在第一控件对象被创建的时候被系统调用的,故第一控件对象启动时便会开启第一倒计时对象。并且,onCreat()只有在创建第一控件对象的时候会调用一次,因此第一倒计时对象只会执行一次开启操作,能够避免多次被执行开启操作的可能性。
在第一倒计时对象启动之后,便需要等待第二控件对象的启动,并进一步实现倒计时同步。根据相关技术,第一控件对象和第二控件对象之间要保持倒计时同步,则第一控件对象和第二控件对象之间具有耦合关系,那么第一控件对象便可以实现对第二控件对象启动的监控。具体实施时,第一控件对象实时监测是否有第二控件对象的启动触发操作,例如用户的点击操作或系统设置的自动跳转项被执行等。当监测到第二控件对象的启动触发操作时,便说明第二控件对象需要被启动并同步倒计时。
此时,为了尽可能地保持第一控件对象中的第一倒计时对象和第二控件对象中的第二倒计时对象的倒计时同步,本发明实施例需要在第一倒计时对象的倒计时函数onTick被触发执行时,将第一倒计时对象中的当前倒计时信息发送至第二控件对象。这样才能保证第二倒计时对象基于当前倒计时信息开启倒计时时,第一倒计时对象中也是基于相同的当前倒计时信息继续进行倒计时的;而不是在第二倒计时对象基于当前倒计时信息开启倒计时时,第一倒计时对象是基于当前倒计时信息之前的某个倒计时信息继续进行倒计时的。另外,为了倒计时信息监测的便利性,本发明实施例将第一倒计时对象中的倒计时信息存储于倒计时共享变量count中,该倒计时共享变量的值在倒计时函数被触发执行时更新。具体实施时,在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的值是否更新。如果未更新,说明倒计时共享变量的值并不是此时第一倒计时对象进行倒计时的倒计时起点信息,那么便不能将其发送至第二控件对象,需要继续监测。如果监测到更新,说明倒计时共享变量的值是此时第一倒计时对象进行倒计时的倒计时起点信息,需要将其立即发送至第二控件对象,此时执行S120。
示例性地,更新第一倒计时对象中的倒计时共享变量的变量值包括:在第一倒计时对象的倒计时函数中,依据倒计时函数的当前函数输入参数值或计时速度时间和计时速度时间的当前执行次数的当前乘积,更新倒计时共享变量的变量值。
其中,计时速度时间为基于系统倒计时类创建第一倒计时对象的倒计时参数,该参数值表示倒计时运行的速度,例如1秒钟执行一次倒计时,那么该计时速度时间便为1000毫秒。第一控件对象创建第一倒计时对象的代码实现可以为:
private CountDownTimer mCountDownTimer1=null;//定义第一倒计时对象mCountDownTimer1
mCountDownTimer1=new CountDownTimer(allTime1,tiggerTime1){//初始化第一倒计时对象,allTime1为第一总计时时间,tiggerTime1为计时速度时间
@Override
public void onTick(long millisUntilFinished){}//倒计时函数,每隔tiggerTime1会触发该函数的执行,millisUntilFinished为倒计时剩余时长
@Override
public void onFinish(){}//倒计时结束函数,倒计时完成的时候触发该函数的执行}。
上述第一总计时时间是基于系统倒计时类创建第一倒计时对象的另一倒计时参数,该参数值表示倒计时的总倒计时长,例如总共需要倒计时60秒钟,那么该第一总计时时间便设置为60秒。需要说明的是,倒计时参数设置时,第一总计时时间需要为计时速度时间的整数倍。
具体地,为了保证倒计时共享变量的变量值更新的及时性,本实施例中将倒计时共享变量的更新设置于第一倒计时对象的倒计时函数onTick中,这样只要倒计时函数被触发执行,便会重新为倒计时共享变量赋值,以更新倒计时共享变量的变量值。该变量值可以根据倒计时信息的内容,选择根据计时速度时间和计时速度时间的当前执行次数的当前乘积或倒计时函数的当前函数输入参数值来更新。
示例性地,第一控件对象为Android系统中的碎片控件对象,第二控件对象为Android系统中的对话框控件对象。其中,碎片控件对象Fragment是Android系统中的用于展示页面内容的控件对象,其一般可承载对话框控件对象Dialog。该应用场景是Android系统中出现较多的一种。
S120、若是,则第一控件对象触发启动第二控件对象,并将更新后的变量值发送至第二控件对象。
具体地,当S110监测到倒计时共享变量的变量值更新时,第一控件对象触发启动第二控件对象,并将更新的倒计时共享变量的变量值发送至第二控件对象。此时,第一倒计时对象仍然基于更新的倒计时共享变量的变量值继续执行倒计时操作。
S130、第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。
具体地,同第一倒计时对象的创建,在第二控件对象中也基于系统倒计时类定义一个第二倒计时对象mCountDownTimer2。当第二控件对象启动时,在第二控件对象的初始化函数中采用初始化第一倒计时对象mCountDownTimer1的方式初始化第二倒计时对象,此时基于更新的倒计时共享变量的变量值来设置第二倒计时对象的倒计时参数——第二总计时时间,以确定第二倒计时对象的总倒计时长,并开始第二控件对象的倒计时。
本发明实施例中,从第一倒计时对象触发执行倒计时函数到第二倒计时对象开始倒计时,中间需经过S110中更新倒计时共享变量的变量值和S130中启动第二控件对象的操作,而更新倒计时共享变量的变量值和启动第二控件对象的时间很短,相对于倒计时的计时速度时间可以忽略不计,故本发明实施例中第一控件对象和第二控件对象之间的倒计时的时间差也可以缩减到忽略不计的程度。
本实施例的技术方案,通过在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中用于存储倒计时信息的倒计时共享变量的变量值是否更新;若是,则第一控件对象触发启动第二控件对象,并将更新后的变量值发送至第二控件对象;第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。缩小了第一控件对象和第二控件对象之间倒计时起点时间的时间差,从而更大程度上保持了第一控件对象和第二控件对象之间的倒计时同步性,提高了用户体验。
实施例二
本实施例在上述实施例一的基础上,对“更新第一倒计时对象中的倒计时共享变量的变量值”进行了进一步优化。在此基础上,还可以进一步对“第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时”进行优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例提供的基于变量的倒计时同步方法包括:
S210、在监测到第二控件对象的启动触发操作,且倒计时信息为倒计时剩余时长时,第一控件对象监测在第一倒计时对象的倒计时函数中,是否依据第一总计时时间以及计时速度时间和计时速度时间的当前执行次数的当前乘积,更新倒计时共享变量的变量值。
其中,第一总计时时间为基于系统倒计时类创建第一倒计时对象的倒计时参数。当前执行次数是指当前时刻倒计时执行的次数,其对应于倒计时函数被触发执行的次数,也就对应于计时速度时间的间隔次数。
具体地,计时速度时间与计时速度时间的当前执行次数的当前乘积可以表征已倒计时长。故当倒计时信息为倒计时剩余时长时,在第一倒计时对象的倒计时函数中onTick中,可以用第一总计时时间减去当前乘积,来获得当前倒计时剩余时长,作为当前倒计时信息。如果当前执行次数更新,当前乘积便会更新,则当前倒计时信息相应更新,便更新了倒计时共享变量的变量值。之后执行S250和S260。
S220、在监测到第二控件对象的启动触发操作,且倒计时信息为倒计时剩余时长时,第一控件对象监测在第一倒计时对象的倒计时函数中,是否将倒计时共享变量的变量值更新为倒计时函数的当前函数输入参数值。
具体地,当前函数输入参数是指当前时刻倒计时函数onTick的函数输入参数millisUntilFinished,其是一个表征倒计时剩余时长的参数,故当倒计时信息为倒计时剩余时长时,监测倒计时函数的当前函数输入参数值是否更新,便是监测倒计时共享变量的变量值是否更新。函数输入参数millisUntilFinished的值的计算是由系统倒计时类提供,每执行一次倒计时函数,该参数值会自动更新一次。之后执行S250和S260。
S230、在监测到第二控件对象的启动触发操作,且倒计时信息为已倒计时长时,第一控件对象监测在第一倒计时对象的倒计时函数中,是否将倒计时共享变量的变量值更新为计时速度时间和计时速度时间的当前执行次数的当前乘积。
具体地,根据上述说明,当倒计时信息为已倒计时长时,监测当前乘积的更新便是监测倒计时共享变量的变量值的更新。之后执行S250和S270。
S240、在监测到第二控件对象的启动触发操作,且倒计时信息为已倒计时长时,第一控件对象监测在第一倒计时对象的倒计时函数中,是否依据第一总计时时间与倒计时函数的当前函数输入参数值,更新倒计时共享变量的变量值。
具体地,根据上述说明,用第一总计时时间减去倒计时函数的当前函数输入参数值便是已倒计时长。那么,当前函数输入参数值的更新便对应倒计时共享变量的变量值的更新。之后执行S250和S270。
S250、若是,则第一控件对象触发启动第二控件对象,并将更新后的变量值发送至第二控件对象。
S260、第二控件对象中的第二倒计时对象将第二总计时时间更新为更新后的变量值,并基于更新后的第二总计时时间同步开始倒计时。
其中,第二总计时时间为基于系统倒计时类创建第二倒计时对象的倒计时参数。
具体地,当倒计时信息为倒计时剩余时长时,第二控件对象接收到的倒计时共享变量的变量值便表征当前时刻的倒计时剩余时长,第二控件对象便可以直接将接收到的变量值作为第二倒计时对象创建时的第二总计时时间,并开启倒计时。在该种情况下,第二倒计时对象中第二总计时时间的初始值不限定。
S270、第二控件对象中的第二倒计时对象依据第二总计时时间和更新后的变量值更新第二总计时时间,并基于更新后的第二总计时时间同步开始倒计时。
具体地,当倒计时信息为已倒计时长时,需要将第二总计时时间的初始值设置为第一总计时时间。这种情况下,第二控件对象接收到的倒计时共享变量的变量值不能直接设置为第二倒计时对象创建时的第二总计时时间,而是需要利用第二总计时时间的初始值减去接收到的变量值,将差值作为第二总计时时间,并开启倒计时。
本实施例的技术方案,通过在倒计时信息为倒计时剩余时长时,利用第一总计时时间和当前乘积,或者倒计时函数的当前函数输入参数值来更新倒计时共享变量的变量值,并将第二总计时时间更新为更新后的变量值来实现第一控件对象和第二控件对象的倒计时同步。在倒计时信息为已倒计时长时,利用当前乘积,或者第一总计时时间与倒计时函数的当前函数输入参数值来更新倒计时共享变量的变量值,并将第二总计时时间更新为第二总计时时间与更新后的变量值的差值来实现第一控件对象和第二控件对象的倒计时同步。完善了倒计时同步流程,提高了倒计时同步方案的适用性。
在上述技术方案的基础上,监测第二控件对象的启动触发操作包括:当第二控件对象为人机交互类控件对象时,监测对话框控件对象的点击操作。
具体地,对于人机交互类的控件对象,例如对话框控件对象,其启动触发操作设置为用户的点击操作。故当第二控件对象为人机交互类控件对象时,监测启动触发操作便是监测点击操作。
在上述技术方案的基础上,本实施例的基于变量的倒计时同步方法还包括:若否,则在第二控件对象对应的显示区域显示预设缓存画面;若是,则隐藏预设缓存画面,并在显示区域显示第二控件对象对应的显示画面。
其中,预设缓存画面是指预先设定的过渡性显示画面,其用于两个显示页面切换过程中,前一个显示页面已隐藏,而后一个显示页面还未显示时。
具体地,对于需要显示倒计时画面的场景,还需设置合理的显示画面切换方案,以避免在实施上述倒计时同步方案的过程中,因无显示画面或显示画面未改变而给用户造成一种卡顿的感觉。本发明实施例中,在监测到第二控件对象的启动触发操作,但倒计时共享变量的变量值未更新时,至少在第二控件对象对应的显示区域显示预设缓存画面。当监测到第二控件对象的启动触发操作,且倒计时共享变量的变量值更新时,由于第二控件对象和第二倒计时对象均启动,故此时将之前显示的预设缓存画面隐藏掉,并至少在第二控件对象对应的显示区域显示第二控件对象对应的显示画面,例如可以是倒计时画面。这样设置的好处在于,提供合理的显示画面切换方案,从而进一步提高用户体验。
以下是本发明实施例提供的基于变量的倒计时同步装置的实施例,该装置与上述各实施例的基于变量的倒计时同步方法属于同一个发明构思,在基于变量的倒计时同步装置的实施例中未详尽描述的细节内容,可以参考上述基于变量的倒计时同步方法的实施例。
实施例三
本实施例提供一种基于变量的倒计时同步装置,参见图3,该装置具体包括:
倒计时更新监测模块310,用于在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新,其中,第一控件对象和第二控件对象为需要保持倒计时同步的控件对象,第一倒计时对象为第一控件对象中的倒计时对象,倒计时共享变量用于存储第一倒计时对象中的倒计时信息;
变量值发送模块320,用于若是,则第一控件对象触发启动第二控件对象,并将更新后的变量值发送至第二控件对象;
同步倒计时模块330,用于第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。
可选地,倒计时更新监测模块310包括倒计时更新子模块,用于:
在第一倒计时对象的倒计时函数中,依据倒计时函数的当前函数输入参数值或计时速度时间和计时速度时间的当前执行次数的当前乘积,更新倒计时共享变量的变量值;
其中,计时速度时间为基于系统倒计时类创建第一倒计时对象的倒计时参数。
进一步地,倒计时更新子模块具体用于:
在倒计时信息为倒计时剩余时长时,依据第一总计时时间以及当前乘积,更新倒计时共享变量的变量值,其中,第一总计时时间为基于系统倒计时类创建第一倒计时对象的倒计时参数;或者,
将倒计时共享变量的变量值更新为倒计时函数的当前函数输入参数值;
相应地,同步倒计时模块330具体用于:
第二控件对象中的第二倒计时对象将第二总计时时间更新为更新后的变量值,并基于更新后的第二总计时时间同步开始倒计时,其中,第二总计时时间为基于系统倒计时类创建第二倒计时对象的倒计时参数。
进一步地,倒计时更新子模块具体用于:
在倒计时信息为已倒计时长时,将倒计时共享变量的变量值更新为当前乘积;或者,
依据第一总计时时间与倒计时函数的当前函数输入参数值,更新倒计时共享变量的变量值;
相应地,同步倒计时模块330具体用于:
第二控件对象中的第二倒计时对象依据第二总计时时间和更新后的变量值更新第二总计时时间,并基于更新后的第二总计时时间同步开始倒计时,其中,第二总计时时间的初始值为第一总计时时间。
可选地,倒计时更新监测模块310具体用于:
当第二控件对象为人机交互类控件对象时,监测第二控件对象的点击操作。
可选地,在上述装置的基础上,该装置还包括显示模块,用于:
若否,则在第二控件对象对应的显示区域显示预设缓存画面;
若是,则隐藏预设缓存画面,并在显示区域显示第二控件对象对应的显示画面。
可选地,第一控件对象为Android系统中的碎片控件对象,第二控件对象为Android系统中的对话框控件对象。
通过本发明实施例三的一种基于变量的倒计时同步装置,缩小了第一控件对象和第二控件对象之间倒计时起点时间的时间差,从而更大程度上保持了第一控件对象和第二控件对象之间的倒计时同步性。
本发明实施例所提供的基于变量的倒计时同步装置可执行本发明任意实施例所提供的基于变量的倒计时同步方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述基于变量的倒计时同步装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种基于变量的倒计时同步方法,该方法包括:
在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新,其中,第一控件对象和第二控件对象为需要保持倒计时同步的控件对象,第一倒计时对象为第一控件对象中的倒计时对象,倒计时共享变量用于存储第一倒计时对象中的倒计时信息;
若是,则第一控件对象触发启动第二控件对象,并将更新后的变量值发送至第二控件对象;
第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的基于变量的倒计时同步方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所提供的基于变量的倒计时同步方法。
实施例五
参见图4,本实施例提供了一种设备400,其包括:一个或多个处理器420;存储装置410,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器420执行,使得一个或多个处理器420实现本发明实施例所提供的基于变量的倒计时同步方法,包括:
在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新,其中,第一控件对象和第二控件对象为需要保持倒计时同步的控件对象,第一倒计时对象为第一控件对象中的倒计时对象,倒计时共享变量用于存储第一倒计时对象中的倒计时信息;
若是,则第一控件对象触发启动第二控件对象,并将更新后的变量值发送至第二控件对象;
第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。
当然,本领域技术人员可以理解,处理器420还可以实现本发明任意实施例所提供的基于变量的倒计时同步方法的技术方案。
图4显示的设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图4所示,该设备400包括处理器420、存储装置410、输入装置430和输出装置440;设备中处理器420的数量可以是一个或多个,图4中以一个处理器420为例;设备中的处理器420、存储装置410、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线450连接为例。
存储装置410作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于变量的倒计时同步方法对应的程序指令/模块(例如,基于变量的倒计时同步装置中的倒计时更新监测模块、变量值发送模块和同步倒计时模块)。
存储装置410可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置410可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置410可进一步包括相对于处理器420远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种基于变量的倒计时同步方法,其特征在于,包括:
在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新,其中,所述第一控件对象和所述第二控件对象为需要保持倒计时同步的控件对象,所述第一倒计时对象为所述第一控件对象中的倒计时对象,所述倒计时共享变量用于存储所述第一倒计时对象中的倒计时信息;
若是,则所述第一控件对象触发启动所述第二控件对象,并将更新后的变量值发送至所述第二控件对象;
所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。
2.根据权利要求1所述的方法,其特征在于,更新第一倒计时对象中的倒计时共享变量的变量值包括:
在所述第一倒计时对象的倒计时函数中,依据所述倒计时函数的当前函数输入参数值或计时速度时间和所述计时速度时间的当前执行次数的当前乘积,更新所述倒计时共享变量的变量值;
其中,所述计时速度时间为基于系统倒计时类创建所述第一倒计时对象的倒计时参数。
3.根据权利要求2所述的方法,其特征在于,在所述倒计时信息为倒计时剩余时长时,依据所述倒计时函数的当前函数输入参数值或计时速度时间和所述计时速度时间的当前执行次数的当前乘积,更新所述倒计时共享变量的变量值包括:
依据第一总计时时间以及所述当前乘积,更新所述倒计时共享变量的变量值,其中,所述第一总计时时间为基于系统倒计时类创建所述第一倒计时对象的倒计时参数;或者,
将所述倒计时共享变量的变量值更新为所述倒计时函数的当前函数输入参数值;
相应地,所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时包括:
所述第二控件对象中的第二倒计时对象将第二总计时时间更新为更新后的变量值,并基于更新后的第二总计时时间同步开始倒计时,其中,所述第二总计时时间为基于系统倒计时类创建所述第二倒计时对象的倒计时参数。
4.根据权利要求2所述的方法,其特征在于,在所述倒计时信息为已倒计时长时,依据所述倒计时函数的当前函数输入参数值或计时速度时间和所述计时速度时间的当前执行次数的当前乘积,更新所述倒计时共享变量的变量值包括:
将所述倒计时共享变量的变量值更新为所述当前乘积;或者,
依据第一总计时时间与所述倒计时函数的当前函数输入参数值,更新所述倒计时共享变量的变量值;
相应地,所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时包括:
所述第二控件对象中的第二倒计时对象依据第二总计时时间和更新后的变量值更新第二总计时时间,并基于更新后的第二总计时时间同步开始倒计时,其中,所述第二总计时时间的初始值为所述第一总计时时间。
5.根据权利要求1所述的方法,其特征在于,监测第二控件对象的启动触发操作包括:
当第二控件对象为人机交互类控件对象时,监测所述第二控件对象的点击操作。
6.根据权利要求1所述的方法,其特征在于,还包括:
若否,则在第二控件对象对应的显示区域显示预设缓存画面;
若是,则隐藏所述预设缓存画面,并在所述显示区域显示所述第二控件对象对应的显示画面。
7.根据权利要求1所述的方法,其特征在于,所述第一控件对象为Android系统中的碎片控件对象,所述第二控件对象为所述Android系统中的对话框控件对象。
8.一种基于变量的倒计时同步装置,其特征在于,包括:
倒计时更新监测模块,用于在监测到第二控件对象的启动触发操作时,第一控件对象监测第一倒计时对象中的倒计时共享变量的变量值是否更新,其中,所述第一控件对象和所述第二控件对象为需要保持倒计时同步的控件对象,所述第一倒计时对象为所述第一控件对象中的倒计时对象,所述倒计时共享变量用于存储所述第一倒计时对象中的倒计时信息;
变量值发送模块,用于若是,则所述第一控件对象触发启动所述第二控件对象,并将更新后的变量值发送至所述第二控件对象;
同步倒计时模块,用于所述第二控件对象中的第二倒计时对象基于更新后的变量值同步开始倒计时。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的基于变量的倒计时同步方法。
10.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的基于变量的倒计时同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811564416.0A CN109582468B (zh) | 2018-12-20 | 2018-12-20 | 基于变量的倒计时同步方法、装置、存储介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811564416.0A CN109582468B (zh) | 2018-12-20 | 2018-12-20 | 基于变量的倒计时同步方法、装置、存储介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582468A true CN109582468A (zh) | 2019-04-05 |
CN109582468B CN109582468B (zh) | 2021-11-09 |
Family
ID=65930281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811564416.0A Active CN109582468B (zh) | 2018-12-20 | 2018-12-20 | 基于变量的倒计时同步方法、装置、存储介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582468B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164142A (zh) * | 2011-04-26 | 2011-08-24 | 苏州阔地网络科技有限公司 | 基于网页实现计时安全同步方法及系统 |
CN102982477A (zh) * | 2012-11-16 | 2013-03-20 | 江苏乐买到网络科技有限公司 | 一种具有精确网络倒计时同步的在线团购系统 |
US20140253536A1 (en) * | 2013-03-05 | 2014-09-11 | Renesas Sp Drivers Inc. | Driver ic and display-input device |
US20150063107A1 (en) * | 2013-08-29 | 2015-03-05 | Calix, Inc. | System and method for automated quality of service configuration through the access network |
CN104731591A (zh) * | 2015-03-19 | 2015-06-24 | 天脉聚源(北京)教育科技有限公司 | 一种内容展示过程中的控件处理方法及装置 |
US20150326510A1 (en) * | 2014-05-12 | 2015-11-12 | Martin Tomlinson | Method and Apparatus for Time Limited Messages in Packet Communications |
CN105099596A (zh) * | 2015-08-26 | 2015-11-25 | 武汉中元华电科技股份有限公司 | 一种系统内高精度时间同步方法及装置 |
CN106055199A (zh) * | 2016-05-26 | 2016-10-26 | 努比亚技术有限公司 | 一种信息同步方法及电子设备 |
CN107295627A (zh) * | 2016-04-01 | 2017-10-24 | 中国移动通信有限公司研究院 | 时间同步方法、时间同步装置及无线通信协议栈系统 |
CN107479983A (zh) * | 2017-07-11 | 2017-12-15 | 核动力运行研究所 | 基于时域控制技术的变步长多程序同步计算系统及方法 |
CN107613014A (zh) * | 2017-09-29 | 2018-01-19 | 联想(北京)有限公司 | 一种数据共享方法、系统、终端、存储介质及汽车 |
CN107637091A (zh) * | 2015-05-19 | 2018-01-26 | 罗伯特·博世有限公司 | 用于传感器同步的方法和设备 |
CN107832088A (zh) * | 2017-11-06 | 2018-03-23 | 青岛海信电器股份有限公司 | 控件使用方法及装置、计算设备、计算机存储介质 |
CN108572613A (zh) * | 2017-03-14 | 2018-09-25 | 欧姆龙株式会社 | 控制装置、信息处理方法 |
-
2018
- 2018-12-20 CN CN201811564416.0A patent/CN109582468B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164142A (zh) * | 2011-04-26 | 2011-08-24 | 苏州阔地网络科技有限公司 | 基于网页实现计时安全同步方法及系统 |
CN102982477A (zh) * | 2012-11-16 | 2013-03-20 | 江苏乐买到网络科技有限公司 | 一种具有精确网络倒计时同步的在线团购系统 |
US20140253536A1 (en) * | 2013-03-05 | 2014-09-11 | Renesas Sp Drivers Inc. | Driver ic and display-input device |
US20150063107A1 (en) * | 2013-08-29 | 2015-03-05 | Calix, Inc. | System and method for automated quality of service configuration through the access network |
US20150326510A1 (en) * | 2014-05-12 | 2015-11-12 | Martin Tomlinson | Method and Apparatus for Time Limited Messages in Packet Communications |
CN104731591A (zh) * | 2015-03-19 | 2015-06-24 | 天脉聚源(北京)教育科技有限公司 | 一种内容展示过程中的控件处理方法及装置 |
CN107637091A (zh) * | 2015-05-19 | 2018-01-26 | 罗伯特·博世有限公司 | 用于传感器同步的方法和设备 |
CN105099596A (zh) * | 2015-08-26 | 2015-11-25 | 武汉中元华电科技股份有限公司 | 一种系统内高精度时间同步方法及装置 |
CN107295627A (zh) * | 2016-04-01 | 2017-10-24 | 中国移动通信有限公司研究院 | 时间同步方法、时间同步装置及无线通信协议栈系统 |
CN106055199A (zh) * | 2016-05-26 | 2016-10-26 | 努比亚技术有限公司 | 一种信息同步方法及电子设备 |
CN108572613A (zh) * | 2017-03-14 | 2018-09-25 | 欧姆龙株式会社 | 控制装置、信息处理方法 |
CN107479983A (zh) * | 2017-07-11 | 2017-12-15 | 核动力运行研究所 | 基于时域控制技术的变步长多程序同步计算系统及方法 |
CN107613014A (zh) * | 2017-09-29 | 2018-01-19 | 联想(北京)有限公司 | 一种数据共享方法、系统、终端、存储介质及汽车 |
CN107832088A (zh) * | 2017-11-06 | 2018-03-23 | 青岛海信电器股份有限公司 | 控件使用方法及装置、计算设备、计算机存储介质 |
Non-Patent Citations (3)
Title |
---|
TIMO FISCHINGER: ""An integrative dual-route model of rhythm perception and production"", 《MUSICAE SCIENTIAE》 * |
三丰SANFENG: ""Linux同步机制(二)-条件变量,信号量,文件锁,栅栏"", 《HTTPS://CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1021109》 * |
赵显琼: ""ATP车载设备管理信息系统数据同步策略研究与实现"", 《铁路计算机应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109582468B (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628652B (zh) | 用户界面渲染方法、装置及终端 | |
EP3567476B1 (en) | Application data processing method and apparatus, and storage medium | |
CN106022108B (zh) | 一种同步管理方法及终端设备 | |
WO2016197590A1 (zh) | 用于在终端设备上提供截屏服务的方法、装置、存储介质及设备 | |
CN109213462B (zh) | Android横竖屏数据同步方法、装置、终端及可读介质 | |
US20180285098A1 (en) | Control method | |
CN114302238B (zh) | 一种音箱模式下提示信息的展示方法及显示设备 | |
CN110798615A (zh) | 一种拍摄方法、装置、存储介质以及终端 | |
CN103309713A (zh) | 系统升级的方法、装置及设备 | |
CN116886967A (zh) | 一种音箱模式下自动开关屏的方法及智能终端、显示设备 | |
CN110750284A (zh) | 一种应用快速启动方法、终端及计算机可读存储介质 | |
CN113971048A (zh) | 应用程序的启动方法及装置、存储介质及电子设备 | |
CN109951732A (zh) | Android智能电视防止开机LOGO与应用切换黑屏的方法 | |
CN107566881B (zh) | 一种vr设备控制方法、装置和系统 | |
CN109582468A (zh) | 基于变量的倒计时同步方法、装置、存储介质和设备 | |
CN103458045A (zh) | 分布式集群的动态部署方法和系统 | |
CN113542256A (zh) | 客户端中登录凭证的更新方法、装置、设备及存储介质 | |
CN109062650A (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109144638B (zh) | Android横竖屏数据同步方法、装置、终端及可读介质 | |
CN109086115B (zh) | Android动画执行方法、装置、终端及可读介质 | |
CN109684009B (zh) | 基于协议的倒计时同步方法、装置、存储介质和设备 | |
CN110045997A (zh) | 基础功能模块的对象初始化方法、装置、设备和存储介质 | |
CN113867831A (zh) | 智能设备控制方法、智能设备、存储介质及电子设备 | |
CN109189498B (zh) | Android横竖屏数据同步方法、装置、终端及可读介质 | |
CN114116105A (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 |