本發明涉及終端應用技術領域,特別是涉及一種計時功能的實現方法及系統。
背景技術:
隨著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實現,簡單繼承類庫和實現必要方法即可完成復雜業務流程。代碼松耦合,統一管理;提到工作效率。利用技術實現任何階段動態賦值(支持負數),界面流暢,計時精確,性能消耗少,用戶體驗好。
雖然本申請描述了本發明的特定示例,但本領域技術人員可以在不脫離本發明概念的基礎上設計出來本發明的變型。
本領域技術人員在本發明技術構思的啟發下,在不脫離本發明內容的基礎上,還可以對本發明的方法做出各種改進,這仍落在本發明的保護范圍之內。