本申請涉及應(yīng)用控制技術(shù)領(lǐng)域,更具體地,是后臺(tái)應(yīng)用的喚醒方法、后臺(tái)應(yīng)用的喚醒裝置及電子設(shè)備。
背景技術(shù):
通常地,手機(jī)等電子設(shè)備上可以安裝應(yīng)用,應(yīng)用可以為用戶提供相應(yīng)的功能。應(yīng)用可以被切換至電子設(shè)備的后臺(tái),切換至后臺(tái)的應(yīng)用可以稱為后臺(tái)應(yīng)用。
可以知道的是,為了降低對電子設(shè)備資源的耗費(fèi),后臺(tái)應(yīng)用被系統(tǒng)控制進(jìn)入休眠狀態(tài),休眠的后臺(tái)應(yīng)用會(huì)暫停程序的運(yùn)行,因此,若想要應(yīng)用重新開始執(zhí)行自身的程序,需要一種技術(shù)方案,來喚醒處于休眠狀態(tài)的后臺(tái)應(yīng)用,以實(shí)現(xiàn)其自身的功能。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請?zhí)峁┝艘环N后臺(tái)應(yīng)用的喚醒方法,用以實(shí)現(xiàn)對后臺(tái)應(yīng)用的喚醒。另外,本申請還提供了一種后臺(tái)應(yīng)用的喚醒裝置及電子設(shè)備,用以保證所述方法在實(shí)際中的應(yīng)用及實(shí)現(xiàn)。
為實(shí)現(xiàn)所述目的,本申請?zhí)峁┑募夹g(shù)方案如下:
本申請的第一方面提供了一種后臺(tái)應(yīng)用的喚醒方法,包括:
響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將所述目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法;所述切換到后臺(tái)的通知方法包括:子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù);
執(zhí)行所述子線程創(chuàng)建函數(shù),以創(chuàng)建與所述目標(biāo)應(yīng)用具有綁定關(guān)系的子線程;
執(zhí)行所述子線程睡眠函數(shù),以睡眠所述子線程,在達(dá)到目標(biāo)喚醒條件時(shí), 喚醒所述子線程;
觸發(fā)所述子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用。
本申請的第二方面提供了一種后臺(tái)應(yīng)用的喚醒裝置,包括:
通知方法調(diào)用模塊,用于響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將所述目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法;所述切換到后臺(tái)的通知方法包括:子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù);
子線程創(chuàng)建模塊,用于執(zhí)行所述子線程創(chuàng)建函數(shù),以創(chuàng)建與所述目標(biāo)應(yīng)用具有綁定關(guān)系的子線程;
子線程睡眠模塊,用于執(zhí)行所述子線程睡眠函數(shù),以睡眠所述子線程;
子線程喚醒模塊,用于在達(dá)到目標(biāo)喚醒條件時(shí),喚醒所述子線程;
子線程喚醒應(yīng)用模塊,用于觸發(fā)所述子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用。
本申請的第三方面提供了一種電子設(shè)備,包括上述的后臺(tái)應(yīng)用的喚醒裝置。
由以上可知,本申請具有如下有益效果:
本申請?zhí)峁┝艘环N后臺(tái)應(yīng)用的喚醒方法實(shí)施例,本實(shí)施例響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將所述目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換至后臺(tái)的通知方法,該通知方法中包含子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù),執(zhí)行子線程創(chuàng)建函數(shù),以為該目標(biāo)應(yīng)用創(chuàng)建子線程,并且執(zhí)行子線程睡眠函數(shù),以睡眠該子線程,在滿足目標(biāo)喚醒條件時(shí),本實(shí)施例便喚醒該子線程,進(jìn)而觸發(fā)子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用??梢?,本實(shí)施例可以為切換至后臺(tái)的目標(biāo)應(yīng)用創(chuàng)建并睡眠子線程,在滿足喚醒條件后,通過喚醒子線程來喚醒后臺(tái)的目標(biāo)應(yīng)用。
當(dāng)然,實(shí)施本申請的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
附圖說明
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不 付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請?zhí)峁┑暮笈_(tái)應(yīng)用的喚醒方法實(shí)施例1的流程圖;
圖2為本申請?zhí)峁┑念A(yù)埋子線程方式的流程圖;
圖3為本申請?zhí)峁┑暮笈_(tái)應(yīng)用的喚醒方法實(shí)施例2的流程圖;
圖4為本申請?zhí)峁┑暮笈_(tái)應(yīng)用的喚醒裝置實(shí)施例1結(jié)構(gòu)示意圖;
圖5為本申請?zhí)峁┑暮笈_(tái)應(yīng)用的喚醒裝置實(shí)施例2結(jié)構(gòu)示意圖;
圖6為本申請?zhí)峁┑囊环N終端硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
參見圖1,其示出了本申請?zhí)峁┑暮笈_(tái)應(yīng)用的喚醒方法實(shí)施例1的流程。如圖1所示,本實(shí)施例可以具體包括以下步驟S101~步驟S104。
步驟S101:響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法;切換到后臺(tái)的通知方法包括:子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù)。
其中,本實(shí)施例可以應(yīng)用在電子設(shè)備上,電子設(shè)備上安裝有各種應(yīng)用,應(yīng)用可以從電子設(shè)備的前臺(tái)切換至后臺(tái),進(jìn)入后臺(tái)的應(yīng)用處于休眠狀態(tài)。在實(shí)施中,應(yīng)用可以是通過以下兩種方式被切換至后臺(tái)的。具體地:
第一種方式中,應(yīng)用在電子設(shè)備的前臺(tái)運(yùn)行時(shí),用戶可以在電子設(shè)備上,對應(yīng)用觸發(fā)切換至后臺(tái)的操作,以使應(yīng)用從前臺(tái)切換至后臺(tái)。其中,用戶觸發(fā)的應(yīng)用即目標(biāo)應(yīng)用。
例如,手機(jī)中安裝有鬧鐘應(yīng)用,用戶可以在設(shè)置界面中,設(shè)置鬧鐘的響鈴時(shí)間及響鈴音樂,并可以在設(shè)置完成后操作退出按鈕,以退出設(shè)置界面??梢灾赖氖?,用戶的退出操作即上文提及的切換至后臺(tái)操作,切換至后臺(tái)操作可以生成切換指令,該切換指令控制鬧鐘應(yīng)用從前臺(tái)切換至后臺(tái)。
第二種方式中,應(yīng)用是自動(dòng)從前臺(tái)切換至后臺(tái)的。例如,錄像設(shè)備中安裝有相機(jī)應(yīng)用,假設(shè)相機(jī)應(yīng)用可以在攝影完成后自動(dòng)生成切換指令,使相機(jī)應(yīng)用由前臺(tái)切換至后臺(tái)。
需要說明的是,以上所舉示例中,應(yīng)用均是從前臺(tái)切換至后臺(tái)的,但是,本實(shí)施例并不局限于由前臺(tái)切換至后臺(tái)的情況,在實(shí)際應(yīng)用中,應(yīng)用還可以是從其他狀態(tài)如未開啟狀態(tài)切換至后臺(tái)的。
應(yīng)用被切換至后臺(tái)后處于休眠狀態(tài),需要被喚醒才能執(zhí)行應(yīng)用的功能方法。因此,為了滿足此種應(yīng)用的需求,可以在此種應(yīng)用的代碼文件中,預(yù)先編寫相應(yīng)的切換到后臺(tái)的通知方法,切換到后臺(tái)的通知方法中包括:子線程創(chuàng)建函數(shù)以及子線程睡眠函數(shù)??蛇x地,在IOS系統(tǒng)的應(yīng)用場景中,該切換到后臺(tái)的通知方法可以為applicationDidEnterBackground方法。另外,為了便于描述,可以將預(yù)先編寫有此種通知方法的應(yīng)用稱為目標(biāo)應(yīng)用。
若發(fā)現(xiàn)目標(biāo)應(yīng)用被切換至后臺(tái),則本實(shí)施例便調(diào)用該目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法,以觸發(fā)該通知方法內(nèi)的函數(shù)的執(zhí)行。
步驟S102:執(zhí)行子線程創(chuàng)建函數(shù),以創(chuàng)建與目標(biāo)應(yīng)用具有綁定關(guān)系的子線程。
具體地,首先執(zhí)行子線程創(chuàng)建函數(shù),該函數(shù)用于創(chuàng)建子線程,該子線程用于喚醒休眠的后臺(tái)應(yīng)用。需要說明的是,子線程創(chuàng)建函數(shù)在目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法內(nèi),因此,該子線程與目標(biāo)應(yīng)用之間具有綁定關(guān)系。
步驟S103:執(zhí)行子線程睡眠函數(shù),以睡眠子線程,在達(dá)到目標(biāo)喚醒條件時(shí),喚醒子線程。
其中,創(chuàng)建子線程后,還需要執(zhí)行子線程睡眠函數(shù),該函數(shù)用于睡眠該子線程。需要說明的是,創(chuàng)建的子線程屬于應(yīng)用級別的線程,其并非存在于電子設(shè)備的底層系統(tǒng)中。因此,可以對其執(zhí)行睡眠動(dòng)作。被睡眠的該線程并不會(huì)占用電子設(shè)備的資源,從而可以降低資源消耗。
由以上可知,子線程已被睡眠,因此,需要首先喚醒該子線程。具體地,監(jiān)測處于睡眠狀態(tài)的線程的狀態(tài)參數(shù),一旦狀態(tài)參數(shù)滿足目標(biāo)喚醒條件,便喚醒該睡眠狀態(tài)的線程。
在實(shí)施中,目標(biāo)喚醒條件可以是時(shí)間值,也可以是外部向應(yīng)用發(fā)送的喚醒指令。詳細(xì)內(nèi)容請參見下文,此處并不贅述。
步驟S104:觸發(fā)子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用。
其中,子線程被喚醒后,該子線程便可以喚醒處于休眠狀態(tài)的目標(biāo)應(yīng)用,目標(biāo)應(yīng)用被喚醒后,便可以執(zhí)行自身的應(yīng)用操作。需要說明的是,應(yīng)用操作表示的是目標(biāo)應(yīng)用自身需要實(shí)現(xiàn)的功能。目標(biāo)應(yīng)用不同,其所實(shí)現(xiàn)的功能可能不同,因此,應(yīng)用操作便不同。例如,鬧鐘應(yīng)用被喚醒后,執(zhí)行的是響鈴操作;相機(jī)應(yīng)用被喚醒后,執(zhí)行的是攝像操作。
由以上的技術(shù)方案可知,本申請?zhí)峁┝艘环N后臺(tái)應(yīng)用的喚醒方法實(shí)施例,本實(shí)施例響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換至后臺(tái)的通知方法,該通知方法中包含子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù),執(zhí)行子線程創(chuàng)建函數(shù),以為該目標(biāo)應(yīng)用創(chuàng)建子線程,并且執(zhí)行子線程睡眠函數(shù),以睡眠該子線程,在滿足目標(biāo)喚醒條件時(shí),本實(shí)施例便喚醒該子線程,進(jìn)而觸發(fā)子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用??梢?,本實(shí)施例可以為切換至后臺(tái)的目標(biāo)應(yīng)用創(chuàng)建并睡眠子線程,在滿足喚醒條件后,通過喚醒子線程來喚醒后臺(tái)的目標(biāo)應(yīng)用。
總結(jié)來講,以上后臺(tái)應(yīng)用的喚醒方法實(shí)施例1可以被稱為預(yù)埋子線程方式,預(yù)埋子線程的具體流程可以參見圖2。如圖2所示,應(yīng)用切換至后臺(tái)后,應(yīng)用的主線程進(jìn)入休眠狀態(tài),創(chuàng)建子線程,該子線程被控制進(jìn)入睡眠狀態(tài),直至滿足目標(biāo)喚醒條件,子線程被喚醒,被喚醒的子線程喚醒主線程,則主線程便執(zhí)行對應(yīng)的應(yīng)用操作。
需要說明的是,以上后臺(tái)應(yīng)用的喚醒方法實(shí)施例1可以應(yīng)用在IOS系統(tǒng)中??梢灾赖氖?,IOS系統(tǒng)為封閉式系統(tǒng),切換至后臺(tái)休眠的目標(biāo)應(yīng)用不能調(diào)用IOS系統(tǒng)中的私有庫,因此,便不可以調(diào)用IOS系統(tǒng)提供的系統(tǒng)進(jìn)程,來喚醒目標(biāo)應(yīng)用。
雖然,IOS系統(tǒng)為切換至后臺(tái)處于休眠狀態(tài)的應(yīng)用,提供有handleEventsForBackgroundURLSession回調(diào)方案,但是,該種回調(diào)方案是在應(yīng)用被切換至后臺(tái)后,執(zhí)行一些必要的任務(wù)處理操作,如下載、加載等。但是,該些任務(wù)處理操作是預(yù)先設(shè)置在回調(diào)方案中的,最重要的是,任務(wù)處理操作并不包含喚醒操作,因此,并不能使用該回調(diào)方案來喚醒切換至后臺(tái)的應(yīng)用。
但是,針對IOS系統(tǒng)的封閉性,以上后臺(tái)應(yīng)用的喚醒方法實(shí)施例1可以在目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法中執(zhí)行子線程創(chuàng)建函數(shù),以創(chuàng)建應(yīng)用級別的子線程。與IOS系統(tǒng)的系統(tǒng)級別進(jìn)程不同,應(yīng)用級別的子線程是可以被觸發(fā)去喚醒目標(biāo)應(yīng)用的,從而有效解決了IOS系統(tǒng)中切換至后臺(tái)的應(yīng)用如何被喚醒的問題。
在實(shí)際應(yīng)用中,睡眠及喚醒子線程的具體實(shí)現(xiàn)方式可以有兩種。第一種是,通過監(jiān)測子線程的睡眠時(shí)長來確定是否需要喚醒線程;第二種是,根據(jù)應(yīng)用外部發(fā)送的目標(biāo)喚醒指令來喚醒線程。以下分別對該兩種實(shí)現(xiàn)方式進(jìn)行詳細(xì)說明。
有關(guān)第一種實(shí)現(xiàn)方式,可以參見圖3,其示出了本申請?zhí)峁┑暮笈_(tái)應(yīng)用的喚醒方法實(shí)施例2的流程。如圖3所示,本實(shí)施例可以具體包括步驟S201~步驟S206。需要說明的是,有關(guān)步驟S201、步驟S202及步驟S206的說明可以參見上述后臺(tái)應(yīng)用的喚醒方法實(shí)施例1,以下并不贅述,僅對其他步驟進(jìn)行詳細(xì)說明。
步驟S201:響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法;切換到后臺(tái)的通知方法包括:子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù)。
步驟S202:執(zhí)行子線程創(chuàng)建函數(shù),以創(chuàng)建與目標(biāo)應(yīng)用具有綁定關(guān)系的子線程。
步驟S203:確定目標(biāo)睡眠時(shí)長。
其中,目標(biāo)睡眠時(shí)長用來作為喚醒子線程的時(shí)長依據(jù)??蛇x地,確定目標(biāo)睡眠時(shí)長的方式也可以有兩種,分別包括以下步驟A及步驟B。
步驟A:獲取用戶輸入的時(shí)間值作為目標(biāo)睡眠時(shí)長。
其中,用戶可以在目標(biāo)應(yīng)用的時(shí)長設(shè)置界面中,設(shè)置目標(biāo)應(yīng)用的睡眠時(shí)長,從而,本實(shí)現(xiàn)方式便將用戶設(shè)置的時(shí)長值確定為目標(biāo)睡眠時(shí)長。
例如,手機(jī)上安裝有鬧鐘應(yīng)用,用戶在鬧鐘設(shè)置界面中,設(shè)置3小時(shí)后進(jìn)行響鈴提醒,本實(shí)現(xiàn)方式便將用戶設(shè)置的3小時(shí)作為目標(biāo)睡眠時(shí)長,從而,在3小時(shí)后喚醒睡眠的子線程,該子線程被喚醒后便可喚醒鬧鐘應(yīng)用,從而使鬧鐘應(yīng)用進(jìn)行響鈴提醒。
步驟B:獲取預(yù)設(shè)時(shí)間值作為目標(biāo)睡眠時(shí)長。
其中,目標(biāo)應(yīng)用中可以預(yù)先設(shè)置有默認(rèn)的睡眠時(shí)長值,如2分鐘,當(dāng)然,該數(shù)值僅僅是說明示例,本申請并不局限于此。本實(shí)現(xiàn)方式直接將該預(yù)設(shè)的時(shí)長值作為目標(biāo)睡眠時(shí)長。
可見,通過以上步驟A或步驟B的方法可以確定出目標(biāo)睡眠時(shí)長。
步驟S204:執(zhí)行睡眠至指定日期方法,以維持子線程在目標(biāo)睡眠時(shí)長內(nèi)睡眠。
其中,維持子線程的睡眠方式可以通過調(diào)用睡眠至指定日期的方法實(shí)現(xiàn)。
具體地,在IOS系統(tǒng)中,睡眠至指定日期的方法為sleepUntilDate方法,該方法表示維持子線程睡眠至某一時(shí)間點(diǎn)。調(diào)用睡眠至指定日期(sleepUntilDate)方法時(shí),需要向該方法傳入調(diào)用參數(shù),調(diào)用參數(shù)為睡眠截止時(shí)間。調(diào)用參數(shù)用于使線程睡眠至該睡眠截止時(shí)間后自動(dòng)喚醒。
例如,用戶設(shè)置鬧鐘應(yīng)用在3小時(shí)后喚醒,用戶進(jìn)行此設(shè)置時(shí)的時(shí)間為2015年10月21日07時(shí)00分,則調(diào)用睡眠至指定日期(sleepUntilDate)方法時(shí),傳入的調(diào)用參數(shù)為2015年10月21日10時(shí)00分,從而該調(diào)用睡眠至指定日期(sleepUntilDate)方法在2015年10月21日10時(shí)00分喚醒鬧鐘應(yīng)用。
另外,維持子線程睡眠還可以通過其他方式實(shí)現(xiàn)。例如,調(diào)用睡眠時(shí)長方法,即sleepForTimeInterval方法,該方法表示維持子線程某一段時(shí)長的睡眠。同理,調(diào)用該方法時(shí),也需要向其傳入調(diào)用參數(shù),但該調(diào)用參數(shù)僅僅為睡眠的時(shí)間長度,睡眠時(shí)長(sleepForTimeInterval)方法可以依據(jù)該調(diào)用參數(shù),確定出線程需要睡眠至哪一時(shí)間點(diǎn)。
同樣以上一示例進(jìn)行舉例說明,若調(diào)用睡眠時(shí)長(sleepForTimeInterval)方法,則傳入的調(diào)用參數(shù)為3小時(shí)。
步驟S205:在子線程的睡眠時(shí)長達(dá)到目標(biāo)睡眠時(shí)長時(shí),喚醒處于睡眠狀態(tài)的子線程。
其中,目標(biāo)睡眠時(shí)長為喚醒子線程的條件,因此,在子線程的睡眠時(shí)長達(dá)到該目標(biāo)睡眠時(shí)長時(shí),便喚醒子線程。
步驟S206:觸發(fā)子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用。
在本實(shí)施例中,使用目標(biāo)睡眠時(shí)長來維持子線程的睡眠,并在子線程的 睡眠時(shí)長達(dá)到該目標(biāo)睡眠時(shí)長時(shí),便喚醒子線程。
當(dāng)然,如上,喚醒睡眠狀態(tài)的子線程還可以使用第二種實(shí)現(xiàn)方式。具體地,以上后臺(tái)應(yīng)用的喚醒方法實(shí)施例1中步驟S103(在達(dá)到目標(biāo)喚醒條件時(shí),喚醒子線程)的實(shí)現(xiàn)方式可以是:響應(yīng)于用戶對目標(biāo)應(yīng)用的喚醒操作,喚醒子線程。
其中,電子設(shè)備上安裝有目標(biāo)應(yīng)用,該目標(biāo)應(yīng)用可以實(shí)時(shí)接收喚醒指令,該喚醒指令可以是依據(jù)用戶對目標(biāo)應(yīng)用的喚醒操作生成的,或者,是電子設(shè)備的系統(tǒng)生成的,或者,是電子設(shè)備上安裝的其他應(yīng)用生成的。
例如,用戶對目標(biāo)應(yīng)用的喚醒操作可以是,用戶在電子設(shè)備上點(diǎn)擊后臺(tái)應(yīng)用的查看按鍵,以使電子設(shè)備顯示當(dāng)前后臺(tái)運(yùn)行的若干后臺(tái)應(yīng)用,該若干應(yīng)用中包含目標(biāo)應(yīng)用,用戶選擇該目標(biāo)應(yīng)用,以使該目標(biāo)應(yīng)用從后臺(tái)喚醒到前臺(tái)。其中,用戶在顯示的若干后臺(tái)應(yīng)用中選擇目標(biāo)應(yīng)用的操作,即對目標(biāo)應(yīng)用的喚醒操作。
可見,與上述后臺(tái)應(yīng)用的喚醒方法實(shí)施例2不同,本實(shí)現(xiàn)方式中,子線程被喚醒依據(jù)的是用戶的喚醒操作生成的喚醒指令。
需要說明的是,上述后臺(tái)應(yīng)用的喚醒方法實(shí)施例2中步驟S204(執(zhí)行睡眠至指定日期方法,以維持子線程在目標(biāo)睡眠時(shí)長內(nèi)睡眠)的實(shí)現(xiàn)方式可以具體為以下步驟,即:在系統(tǒng)時(shí)間管理進(jìn)程中,注冊子線程的睡眠時(shí)間為目標(biāo)睡眠時(shí)長,以維持子線程在目標(biāo)睡眠時(shí)長內(nèi)睡眠。
相應(yīng)地,上述后臺(tái)應(yīng)用的喚醒方法實(shí)施例2中步驟S205(在子線程的睡眠時(shí)長達(dá)到目標(biāo)睡眠時(shí)長時(shí),喚醒處于睡眠狀態(tài)的子線程)的實(shí)現(xiàn)方式可以具體為以下步驟,即:響應(yīng)于系統(tǒng)時(shí)間管理進(jìn)程的喚醒指令,喚醒處于睡眠狀態(tài)的子線程。
具體地,電子設(shè)備的系統(tǒng)中,維持有系統(tǒng)時(shí)間管理進(jìn)程,該進(jìn)程用于為系統(tǒng)自身及所有應(yīng)用提供有關(guān)時(shí)間的管理功能。本申請可以利用系統(tǒng)時(shí)間管理進(jìn)程的管理功能,來實(shí)現(xiàn)對創(chuàng)建的子線程的睡眠及喚醒。
在睡眠子線程前,已經(jīng)確定出目標(biāo)睡眠時(shí)長,因此可以向系統(tǒng)時(shí)間管理進(jìn)程注冊該子線程,并且通知該系統(tǒng)時(shí)間管理進(jìn)程子線程的目標(biāo)睡眠時(shí)長。 接下來,便可以控制子線程進(jìn)入睡眠狀態(tài),系統(tǒng)時(shí)間管理進(jìn)程監(jiān)測發(fā)現(xiàn)到達(dá)目標(biāo)睡眠時(shí)長后,便向子線程發(fā)送喚醒指令,以喚醒睡眠的子線程。
子線程被喚醒后,其可以喚醒切換至后臺(tái)的目標(biāo)應(yīng)用。具體地,目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法中,不僅包含有子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù),而且,還包含有目標(biāo)應(yīng)用的目標(biāo)方法。
重要的是,在切換到后臺(tái)的通知方法中,該功能性方法設(shè)置在子線程睡眠函數(shù)的后面,在子線程睡眠函數(shù)將子線程睡眠且喚醒后,便可以執(zhí)行目標(biāo)應(yīng)用的目標(biāo)方法。因此,可以認(rèn)為子線程被喚醒后綁定有目標(biāo)應(yīng)用的目標(biāo)方法。
相應(yīng)地,以上后臺(tái)應(yīng)用的喚醒方法實(shí)施例1中步驟S104(觸發(fā)子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用)的實(shí)現(xiàn)方式可以包括:在子線程被喚醒后,執(zhí)行目標(biāo)應(yīng)用的目標(biāo)方法。
其中,目標(biāo)應(yīng)用的目標(biāo)方法表示的是目標(biāo)應(yīng)用的功能性方法,其實(shí)現(xiàn)的是目標(biāo)應(yīng)用的具體功能,如鬧鐘應(yīng)用的響鈴方法。
以下對本申請?zhí)峁┑暮笈_(tái)應(yīng)用的喚醒裝置實(shí)施例進(jìn)行介紹,需要說明的是,下文有關(guān)后臺(tái)應(yīng)用的喚醒裝置實(shí)施例的說明可以參見上文提供的后臺(tái)應(yīng)用的喚醒方法實(shí)施例,以下并不贅述。
與上述后臺(tái)應(yīng)用的喚醒方法實(shí)施例1相對應(yīng),本申請?zhí)峁┝艘环N后臺(tái)應(yīng)用的喚醒裝置實(shí)施例1。如圖4所示,本實(shí)施例可以具體包括:通知方法調(diào)用模塊401、子線程創(chuàng)建模塊402、子線程睡眠模塊403、子線程喚醒模塊404及子線程喚醒應(yīng)用模塊405;其中:
通知方法調(diào)用模塊401,用于響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法;切換到后臺(tái)的通知方法包括:子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù);
子線程創(chuàng)建模塊402,用于執(zhí)行子線程創(chuàng)建函數(shù),以創(chuàng)建與目標(biāo)應(yīng)用具有綁定關(guān)系的子線程;
子線程睡眠模塊403,用于執(zhí)行子線程睡眠函數(shù),以睡眠子線程;
子線程喚醒模塊404,用于在達(dá)到目標(biāo)喚醒條件時(shí),喚醒子線程;
子線程喚醒應(yīng)用模塊405,用于觸發(fā)子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用。
由以上技術(shù)方案可知,本申請?zhí)峁┝艘环N后臺(tái)應(yīng)用的喚醒裝置實(shí)施例,本實(shí)施例中通知方法調(diào)用模塊401響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換至后臺(tái)的通知方法,該通知方法中包含子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù),子線程創(chuàng)建模塊402執(zhí)行子線程創(chuàng)建函數(shù),以為該目標(biāo)應(yīng)用創(chuàng)建子線程,并且子線程睡眠模塊403執(zhí)行子線程睡眠函數(shù),以睡眠該子線程,在滿足目標(biāo)喚醒條件時(shí),子線程喚醒模塊404便喚醒該子線程,進(jìn)而子線程喚醒應(yīng)用模塊405觸發(fā)子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用。可見,本實(shí)施例可以為切換至后臺(tái)的目標(biāo)應(yīng)用創(chuàng)建并睡眠子線程,在滿足喚醒條件后,通過喚醒子線程來喚醒后臺(tái)的目標(biāo)應(yīng)用。
與上述后臺(tái)應(yīng)用的喚醒方法實(shí)施例2相對應(yīng),本申請?zhí)峁┝艘环N后臺(tái)應(yīng)用的喚醒裝置實(shí)施例2。如圖5所示,本實(shí)施例可以具體包括:通知方法調(diào)用模塊501、子線程創(chuàng)建模塊502、睡眠時(shí)長確定模塊503、子線程睡眠子模塊504、子線程喚醒子模塊505及子線程喚醒應(yīng)用模塊506。
需要說明的是,有關(guān)通知方法調(diào)用模塊501、子線程創(chuàng)建模塊502及子線程喚醒應(yīng)用模塊506的說明可以參見上述后臺(tái)應(yīng)用的喚醒裝置實(shí)施例1,以下并不贅述,僅對其他模塊進(jìn)行詳細(xì)說明。
睡眠時(shí)長確定模塊503,用于確定目標(biāo)睡眠時(shí)長。
子線程睡眠子模塊504,用于執(zhí)行睡眠至指定日期方法,以維持子線程在目標(biāo)睡眠時(shí)長內(nèi)睡眠。
可選地,子線程睡眠子模塊504具體包括:系統(tǒng)注冊子線程單元。
其中:系統(tǒng)注冊子線程單元,用于在系統(tǒng)時(shí)間管理進(jìn)程中,注冊子線程的睡眠時(shí)間為目標(biāo)睡眠時(shí)長,以維持子線程在目標(biāo)睡眠時(shí)長內(nèi)睡眠;
子線程喚醒子模塊505,用于在子線程的睡眠時(shí)長達(dá)到目標(biāo)睡眠時(shí)長時(shí),喚醒處于睡眠狀態(tài)的子線程。
可選地,子線程喚醒子模塊505具體包括:系統(tǒng)喚醒子線程單元。
其中:系統(tǒng)喚醒子線程單元,用于響應(yīng)于系統(tǒng)時(shí)間管理進(jìn)程的喚醒指令,喚醒處于睡眠狀態(tài)的子線程。
在實(shí)際應(yīng)用中,上述后臺(tái)應(yīng)用的喚醒裝置中的睡眠時(shí)長確定模塊503可以具體包括:睡眠時(shí)長確定子模塊。
其中:睡眠時(shí)長確定子模塊,用于獲取用戶輸入的時(shí)間值作為目標(biāo)睡眠時(shí)長;或,獲取預(yù)設(shè)時(shí)間值作為目標(biāo)睡眠時(shí)長。
上述的后臺(tái)應(yīng)用的喚醒裝置中,子線程喚醒模塊404可以具體包括:用戶操作喚醒子模塊;其中:
用戶操作喚醒子模塊,用于響應(yīng)于用戶對目標(biāo)應(yīng)用的喚醒操作,喚醒子線程。
上述的后臺(tái)應(yīng)用的喚醒裝置中,子線程被喚醒后綁定有目標(biāo)應(yīng)用的目標(biāo)方法;相應(yīng)地,子線程喚醒應(yīng)用模塊405可以具體包括:應(yīng)用方法執(zhí)行子模塊。
其中,應(yīng)用方法執(zhí)行子模塊,用于在子線程被喚醒后,執(zhí)行目標(biāo)應(yīng)用的目標(biāo)方法。
另外,本申請還提供了一種電子設(shè)備,包括上述任意一種后臺(tái)應(yīng)用的喚醒裝置。
本申請實(shí)施例還提供一種終端,該終端可以包括上述的后臺(tái)應(yīng)用的喚醒方法,對于后臺(tái)應(yīng)用的喚醒方法的描述可參照上文對應(yīng)部分描述,此處不再贅述。
下面對本申請實(shí)施例提供的終端的硬件結(jié)構(gòu)進(jìn)行描述,下文描述中涉及后臺(tái)應(yīng)用的喚醒的部分可參照上文對應(yīng)部分描述。圖6為本申請實(shí)施例提供的終端的硬件結(jié)構(gòu)示意圖,參照圖6,該終端可以包括:
處理器1,通信接口2,存儲(chǔ)器3,通信總線4,和顯示屏5;
其中處理器1、通信接口2、存儲(chǔ)器3和顯示屏5通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執(zhí)行程序;
存儲(chǔ)器3,用于存放程序;
程序可以包括程序代碼,程序代碼包括處理器的操作指令。
處理器1可能是一個(gè)中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實(shí)施本申請實(shí)施例的一個(gè)或多個(gè)集成電路。
存儲(chǔ)器3可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。
其中,程序可具體用于:
響應(yīng)于用戶對目標(biāo)應(yīng)用的切換至后臺(tái)操作,將目標(biāo)應(yīng)用切換至后臺(tái),并調(diào)用目標(biāo)應(yīng)用的切換到后臺(tái)的通知方法;切換到后臺(tái)的通知方法包括:子線程創(chuàng)建函數(shù)及子線程睡眠函數(shù);
執(zhí)行子線程創(chuàng)建函數(shù),以創(chuàng)建與目標(biāo)應(yīng)用具有綁定關(guān)系的子線程;
執(zhí)行子線程睡眠函數(shù),以睡眠子線程,在達(dá)到目標(biāo)喚醒條件時(shí),喚醒子線程;
觸發(fā)子線程喚醒切換至后臺(tái)的目標(biāo)應(yīng)用。
需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括上述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請將不會(huì)被限制于本文所示的這些實(shí)施例, 而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。