終端中應(yīng)用程序的處理方法及裝置的制造方法
【專利摘要】本公開是關(guān)于終端中應(yīng)用程序的處理方法及裝置。該方法包括:監(jiān)聽到終端中的應(yīng)用程序的通信請求;調(diào)用終端中的一進程;通過進程將通信請求發(fā)送至應(yīng)用程序所對應(yīng)的服務(wù)器,并建立進程與服務(wù)器之間的長連接;通過進程接收服務(wù)器針對通信請求返回的響應(yīng)信息,并將響應(yīng)信息發(fā)送至應(yīng)用程序。該技術(shù)方案,可以通過一進程建立并維持所有的應(yīng)用程序與其對應(yīng)的服務(wù)器之間的長連接,確保在該應(yīng)用程序被關(guān)閉時,該應(yīng)用程序與其對應(yīng)的服務(wù)器之間的長連接并不會隨之消失;同時也能確保該應(yīng)用程序與其對應(yīng)的服務(wù)器之間的通信實時性,并減少系統(tǒng)的耗電量。
【專利說明】
終端中應(yīng)用程序的處理方法及裝置
技術(shù)領(lǐng)域
[0001 ]本公開涉及終端技術(shù)領(lǐng)域,尤其涉及終端中應(yīng)用程序的處理方法及裝置。
【背景技術(shù)】
[0002]目前,隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,很多應(yīng)用程序?qū)CP(Transmiss1nControlProtocol,傳輸控制協(xié)議)長連接的依賴越來越大,即時通訊軟件或者V0IP(Voice overInternet Protocol,將模擬信號數(shù)字化)軟件需要在任何時候都能接收到服務(wù)器端的消息,這就需要建立并維持與服務(wù)器之間的連接。但在現(xiàn)有技術(shù)中,應(yīng)用程序與服務(wù)器之間建立的長連接,需要應(yīng)用的進程去維持這個長連接,這就存在一些問題,如該應(yīng)用程序被關(guān)閉時,長連接隨之消息,或者當該應(yīng)用程序退到后臺時,系統(tǒng)會禁止使用長連接,為了解決這些問題,可以單獨啟動一個后臺進程維持該長連接,這樣當該應(yīng)用程序被關(guān)閉后,該長連接會一直存在,但這種解決方案需要為每個應(yīng)用程序單獨創(chuàng)建一個進程,系統(tǒng)資源消耗過多,或者采用第三方push服務(wù)來維持該長連接,使得該應(yīng)用程序被關(guān)閉后,該長連接會一直存在,但數(shù)據(jù)的到達率和實時性無法保證。另外,上述兩種解決方案都無法解決該應(yīng)用程序運行至后臺后,該長連接仍然無法聯(lián)網(wǎng),造成信息丟失或接收不及時的問題,同時,無論哪種解決方案都會經(jīng)常喚醒系統(tǒng),浪費電量。
【發(fā)明內(nèi)容】
[0003]本公開實施例提供了終端中應(yīng)用程序的處理方法及裝置。所述技術(shù)方案如下:
[0004]根據(jù)本公開實施例的第一方面,提供一種終端中應(yīng)用程序的處理方法,包括:
[0005]監(jiān)聽到所述終端中的應(yīng)用程序的通信請求;
[0006]調(diào)用所述終端中的一進程;
[0007]通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接;
[0008]通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。
[0009]在一個實施例中,所述方法還包括:
[0010]在所述應(yīng)用程序接收到所述響應(yīng)信息之后,監(jiān)測所述應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除;
[0011]在所述應(yīng)用程序運行在所述后臺或者被從內(nèi)存中清除,且所述應(yīng)用程序尚未被退出時,按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0012]在一個實施例中,所述按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接,包括:
[0013]在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,控制所述應(yīng)用程序向所述進程發(fā)送心跳包;
[0014]通過所述進程將所述心跳包發(fā)送至所述服務(wù)器,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0015]在一個實施例中,所述方法還包括:
[0016]在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,判斷所述應(yīng)用程序是否回到后臺;
[0017]當所述應(yīng)用程序回到所述后臺時,關(guān)閉所述應(yīng)用程序。
[0018]在一個實施例中,所述方法還包括:
[0019]確定在預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi),所述應(yīng)用程序被喚醒后,回到所述后臺的總次數(shù);
[0020]確定所述總次數(shù)與所述預(yù)設(shè)數(shù)目的比例是否大于或等于預(yù)設(shè)比例;
[0021]當所述比例大于或等于所述預(yù)設(shè)比例、且在所述預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi)所述應(yīng)用程序最后一次被喚醒后再次回到所述后臺時,控制所述應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉通知;
[0022]通過所述進程將所述長連接關(guān)閉通知發(fā)送至所述服務(wù)器,以使所述服務(wù)器斷開與所述進程之間的所述長連接。
[0023]在一個實施例中,當所述應(yīng)用程序包括至少兩個時,所述方法還包括:
[0024]判斷所述終端的當前剩余電量是否小于或等于預(yù)設(shè)剩余電量;
[0025]當所述當前剩余電量小于或等于所述預(yù)設(shè)剩余電量時,獲取在預(yù)設(shè)歷史時間段內(nèi)、至少兩個所述應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序;
[0026]控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令,以使所述進程斷開與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接。
[0027]在一個實施例中,所述控制所述目標應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉指令,包括:
[0028]將所述目標應(yīng)用程序和所述當前剩余電量提示給用戶,以使所述用戶根據(jù)所述當前剩余電量確定是否斷開所述進程與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接;
[0029]在接收到所述長連接斷開指令時,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令。
[0030]在一個實施例中,所述進程包括:允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程。
[0031]根據(jù)本公開實施例的第二方面,提供一種終端中應(yīng)用程序的處理裝置,包括:
[0032]監(jiān)聽模塊,用于監(jiān)聽到所述終端中的應(yīng)用程序的通信請求;
[0033]調(diào)用模塊,用于調(diào)用所述終端中的一進程;
[0034]第一處理模塊,用于通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接;
[0035]第二處理模塊,用于通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。
[0036]在一個實施例中,所述裝置還包括:
[0037]監(jiān)測模塊,用于在所述應(yīng)用程序接收到所述響應(yīng)信息之后,監(jiān)測所述應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除;
[0038]喚醒模塊,用于在所述應(yīng)用程序運行在所述后臺或者被從內(nèi)存中清除,且所述應(yīng)用程序尚未被退出時,按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0039]在一個實施例中,所述喚醒模塊包括:
[0040]控制子模塊,用于在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,控制所述應(yīng)用程序向所述進程發(fā)送心跳包;
[0041 ]發(fā)送子模塊,用于通過所述進程將所述心跳包發(fā)送至所述服務(wù)器,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0042]在一個實施例中,所述裝置還包括:
[0043]判斷模塊,用于在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,判斷所述應(yīng)用程序是否回到后臺;
[0044]第三處理模塊,用于當所述應(yīng)用程序回到所述后臺時,關(guān)閉所述應(yīng)用程序。
[0045]在一個實施例中,所述裝置還包括:
[0046]第一確定模塊,用于確定在預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi),所述應(yīng)用程序被喚醒后,回到所述后臺的總次數(shù);
[0047]第二確定模塊,用于確定所述總次數(shù)與所述預(yù)設(shè)數(shù)目的比例是否大于或等于預(yù)設(shè)比例;
[0048]第一控制模塊,用于當所述比例大于或等于所述預(yù)設(shè)比例、且在所述預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi)所述應(yīng)用程序最后一次被喚醒后再次回到所述后臺時,控制所述應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉通知;
[0049]發(fā)送模塊,用于通過所述進程將所述長連接關(guān)閉通知發(fā)送至所述服務(wù)器,以使所述服務(wù)器斷開與所述進程之間的所述長連接。
[0050]在一個實施例中,所述裝置還包括:
[0051]判斷模塊,用于當所述應(yīng)用程序包括至少兩個時,判斷所述終端的當前剩余電量是否小于或等于預(yù)設(shè)剩余電量;
[0052]獲取模塊,用于當所述當前剩余電量小于或等于所述預(yù)設(shè)剩余電量時,獲取在預(yù)設(shè)歷史時間段內(nèi)、至少兩個所述應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序;
[0053]第二控制模塊,用于控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令,以使所述進程斷開與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接。
[0054]在一個實施例中,所述第二控制模塊包括:
[0055]提示子模塊,用于將所述目標應(yīng)用程序和所述當前剩余電量提示給用戶,以使所述用戶根據(jù)所述當前剩余電量確定是否斷開所述進程與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接;
[0056]控制子模塊,用于在接收到所述長連接斷開指令時,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令。
[0057]在一個實施例中,所述進程包括:允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程。
[0058]根據(jù)本公開實施例的第三方面,提供了一種終端中應(yīng)用程序的處理裝置,包括:
[0059]處理器;
[0060]用于存儲處理器可執(zhí)行指令的存儲器;
[0061 ]其中,所述處理器被配置為:
[0062]監(jiān)聽到所述終端中的應(yīng)用程序的通信請求;
[0063 ]調(diào)用所述終端中的一進程;
[0064]通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接;
[0065]通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。
[0066]本公開的實施例提供的技術(shù)方案可以包括以下有益效果:
[0067]本公開的實施例提供的技術(shù)方案,在監(jiān)聽到終端中的應(yīng)用程序的通信請求時,通過調(diào)用該終端中的進程,可以使用該進程建立并維持所有的應(yīng)用程序與其對應(yīng)的服務(wù)器之間的長連接,確保在該應(yīng)用程序被關(guān)閉時,該應(yīng)用程序與其對應(yīng)的服務(wù)器之間的長連接并不會隨之消失,從而避免該應(yīng)用程序重新回到前臺運行后,需要重新創(chuàng)建相應(yīng)的長連接這一問題,進而簡化操作,減少對系統(tǒng)資源不避免的消耗;同時也能確保該應(yīng)用程序與其對應(yīng)的服務(wù)器之間的通信實時性,并減少系統(tǒng)的耗電量。
[0068]應(yīng)當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【附圖說明】
[0069]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本公開的實施例,并與說明書一起用于解釋本公開的原理。
[0070]圖1是根據(jù)一示例性實施例示出的一種終端中應(yīng)用程序的處理方法的流程圖。
[0071]圖2是根據(jù)一示例性實施例示出的另一種終端中應(yīng)用程序的處理方法的流程圖。
[0072]圖3是根據(jù)一示例性實施例一示出的又一種終端中應(yīng)用程序的處理方法的流程圖。
[0073]圖4是根據(jù)一示例性實施例一示出的再一種終端中應(yīng)用程序的處理方法的流程圖。
[0074]圖5是根據(jù)一示例性實施例一示出的再一種終端中應(yīng)用程序的處理方法的流程圖。
[0075]圖6是根據(jù)一示例性實施例一示出的再一種終端中應(yīng)用程序的處理方法的流程圖。
[0076]圖7是根據(jù)一示例性實施例一示出的再一種終端中應(yīng)用程序的處理方法的流程圖。
[0077]圖8是根據(jù)一示例性實施例示出的一種終端中應(yīng)用程序的處理裝置的框圖。
[0078]圖9是根據(jù)一示例性實施例示出的另一種終端中應(yīng)用程序的處理裝置的框圖。
[0079]圖10是根據(jù)一示例性實施例示出的又一種終端中應(yīng)用程序的處理裝置的框圖。
[0080]圖11是根據(jù)一示例性實施例示出的再一種終端中應(yīng)用程序的處理裝置的框圖。
[0081]圖12是根據(jù)一示例性實施例示出的再一種終端中應(yīng)用程序的處理裝置的框圖。
[0082]圖13是根據(jù)一示例性實施例示出的再一種終端中應(yīng)用程序的處理裝置的框圖。
[0083]圖14是根據(jù)一示例性實施例示出的再一種終端中應(yīng)用程序的處理裝置的框圖。
[0084]圖15是根據(jù)一示例性實施例示出的適用于終端中應(yīng)用程序的處理裝置的框圖。
【具體實施方式】
[0085]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
[0086]目前,隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,很多應(yīng)用程序?qū)CP(Transmiss1nControlProtocol,傳輸控制協(xié)議)長連接的依賴越來越大,即時通訊軟件或者V0IP(Voice overInternet Protocol,將模擬信號數(shù)字化)軟件需要在任何時候都能接收到服務(wù)器端的消息,這就需要建立并維持與服務(wù)器之間的連接。但在現(xiàn)有技術(shù)中,應(yīng)用程序與服務(wù)器之間建立的長連接,需要應(yīng)用的進程去維持這個長連接,這就存在一些問題,如該應(yīng)用程序被關(guān)閉時,長連接隨之消息,或者當該應(yīng)用程序退到后臺時,系統(tǒng)會禁止使用長連接,為了解決這些問題,可以單獨啟動一個后臺進程維持該長連接,這樣當該應(yīng)用程序被關(guān)閉后,該長連接會一直存在,但這種解決方案需要為每個應(yīng)用程序單獨創(chuàng)建一個進程,系統(tǒng)資源消耗過多,或者采用第三方push服務(wù)來維持該長連接,使得該應(yīng)用程序被關(guān)閉后,該長連接會一直存在,但數(shù)據(jù)的到達率和實時性無法保證。另外,上述兩種解決方案都無法解決該應(yīng)用程序運行至后臺后,該長連接仍然無法聯(lián)網(wǎng),造成信息丟失或接收不及時的問題,同時,無論哪種解決方案都會經(jīng)常喚醒系統(tǒng),浪費電量。
[0087]為了解決上述技術(shù)問題,本公開實施例提供了一種終端中應(yīng)用程序的處理方法,該方法可用于終端中應(yīng)用程序的處理程序、系統(tǒng)或裝置中,且該方法對應(yīng)的執(zhí)行主體可以是用戶攜帶的安裝有安卓系統(tǒng)的終端,如圖1所示,該方法包括步驟S1I至步驟S104:
[0088]在步驟SlOl中,監(jiān)聽到所述終端中的應(yīng)用程序的通信請求;
[0089]該通信請求為該應(yīng)用程序請求與其對應(yīng)的服務(wù)器相連接以進行通信的請求,可以是在該應(yīng)用程序接收到打開操作動作(如點擊、長按)時,自動生成的,也可以在應(yīng)用程序接收到輸入指令(如輸入搜索關(guān)鍵詞)、或者應(yīng)用程序的虛擬圖標被選中(如點擊、長按能夠進行頁面跳轉(zhuǎn)的虛擬圖標等)時,自動生成的。
[0090]在步驟S102中,調(diào)用所述終端中的一進程;
[0091]該進程是終端中的一個系統(tǒng)進程,是一個公用進程,所有的應(yīng)用程序在生成通信請求以期望與其對應(yīng)的服務(wù)器進行通信時,均通過該進程將其通信請求轉(zhuǎn)發(fā)至對應(yīng)的服務(wù)器。
[0092]另外,該進程可以是系統(tǒng)在監(jiān)測到應(yīng)用程序的通信請求之前已自動創(chuàng)建的,也可以是在終端被啟動后,系統(tǒng)在監(jiān)測到第一個被啟動的應(yīng)用程序生成的通信請求之后,自動創(chuàng)建的,還可以是在終端被啟動后,第一個被啟動的應(yīng)用程序在生成通信請求后自動創(chuàng)建的,且當該進程被創(chuàng)建完成之后,只要用戶不手動清除該進程、或者終端不關(guān)機、或者所有的應(yīng)用程序未被全部退出登錄,該進程會一直存在于系統(tǒng)中,以供調(diào)用。
[0093]在步驟S103中,通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接,其中,長連接是指在一個連接上可以連續(xù)發(fā)送多個數(shù)據(jù)包,在連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)鏈路檢測包;
[0094]通過該進程將該通信請求發(fā)送至該應(yīng)用程序所對應(yīng)的服務(wù)器,并建立該進程與該應(yīng)用程序的服務(wù)器之間的長連接,可以在該應(yīng)用程序被關(guān)閉(即該應(yīng)用程序被從內(nèi)存中清除、但未被退出登錄)時,該應(yīng)用程序與其對應(yīng)的服務(wù)器之間的長連接(即該進程與其對應(yīng)的服務(wù)器之間的長連接)仍然存在,并不會隨之消失,從而避免該應(yīng)用程序重新回到前臺運行后,需要重新創(chuàng)建相應(yīng)的長連接這一問題,進而簡化操作,減少對系統(tǒng)資源不避免的消耗;
[0095]另外,由于該終端中僅有一個負責建立所有的應(yīng)用程序與其對應(yīng)的服務(wù)器之間的長連接的進程,因而,這進一步減少了系統(tǒng)資源的消耗,避免為每個應(yīng)用程序均創(chuàng)建一個建立長連接的進程,同時由于該進程是該終端中的進程,并不是第三方的push服務(wù),因而也能保證應(yīng)用程序與其對應(yīng)的服務(wù)器之間的通信實時性。
[0096]在步驟S104中,通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。
[0097]在服務(wù)器響應(yīng)該進程轉(zhuǎn)發(fā)的相應(yīng)應(yīng)用程序發(fā)送的通信請求,并與該進程建立相應(yīng)的長連接后,該進程會接收到服務(wù)器針對該通信請求返回的響應(yīng)信息,此時,該進程也會將該響應(yīng)信息發(fā)送至應(yīng)用程序,這樣就可以使應(yīng)用程序確認能夠開始與該服務(wù)器進行通信了,以提高通信效率。
[0098]如圖2所示,在一個實施例中,所述方法還包括:
[0099]在步驟S201中,在所述應(yīng)用程序接收到所述響應(yīng)信息之后,監(jiān)測所述應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除;
[0100]在步驟S202中,在所述應(yīng)用程序運行在所述后臺或者被從內(nèi)存中清除,且所述應(yīng)用程序尚未被退出時,按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0101]在該應(yīng)用程序接收到響應(yīng)信息之后,需要監(jiān)測應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除,如果監(jiān)測到該應(yīng)用程序仍然運行在后臺或者被從內(nèi)存中清除,且該應(yīng)用程序尚未被退出登錄時,則說明用戶當前未使用該應(yīng)用程序且用戶并未徹底退出該應(yīng)用程序,因而,用戶很可能需要繼續(xù)使用該應(yīng)用程序,與其對應(yīng)的服務(wù)器進行通信(如再次向其對應(yīng)的服務(wù)器發(fā)送通信請求),所以,系統(tǒng)可以按照預(yù)設(shè)喚醒周期喚醒該應(yīng)用程序,以使服務(wù)器保持與進程之間的長連接,從而使服務(wù)器確認其對應(yīng)的應(yīng)用程序仍然處于“在線”狀態(tài),避免服務(wù)器誤認為該應(yīng)用程序已經(jīng)被退出而過早中斷該長連接,進而導致用戶再使用該應(yīng)用程序時,系統(tǒng)需要重新建立該長連接。
[0102]如圖3所示,在一個實施例中,上述步驟S202中的步驟“所述按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接”可被執(zhí)行為:
[0103]在步驟Al中,在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,控制所述應(yīng)用程序向所述進程發(fā)送心跳包;
[0104]在步驟A2中,通過所述進程將所述心跳包發(fā)送至所述服務(wù)器,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0105]在按照預(yù)設(shè)喚醒周期喚醒該應(yīng)用程序之后,可以控制該應(yīng)用程序向該進程發(fā)送該心跳包,從而通過該進程將心跳包發(fā)送至服務(wù)器,以使服務(wù)器確認其對應(yīng)的應(yīng)用程序仍然處于“在線”狀態(tài),避免服務(wù)器誤認為該應(yīng)用程序已經(jīng)被退出而過早中斷該長連接,進而導致用戶再使用該應(yīng)用程序時,系統(tǒng)需要重新建立該長連接。
[0106]另外,由于所有的應(yīng)用程序在與其對應(yīng)的服務(wù)器建立長連接時,都需要通過該進程,并建立該進程與其對應(yīng)的服務(wù)器之間的長連接,因而,系統(tǒng)定期統(tǒng)一喚醒這些應(yīng)用程序并控制這些應(yīng)用程序統(tǒng)一向該進程發(fā)送心跳包之后,該進程會將接收到的所有心跳包統(tǒng)一發(fā)送至各自對應(yīng)的服務(wù)器,由該進程來統(tǒng)一維持與各自的服務(wù)器之間的長連接,這樣可以減少電量的消耗,避免各應(yīng)用程序不停地自主喚醒系統(tǒng)進而通過該進程發(fā)送心跳包來維持相應(yīng)的長連接所帶來的耗電多的問題。
[0107]如圖4所示,在一個實施例中,所述方法還包括:
[0108]在步驟S401之后,在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,判斷所述應(yīng)用程序是否回到后臺;
[0109]在步驟S402之后,當所述應(yīng)用程序回到所述后臺時,關(guān)閉所述應(yīng)用程序。
[0110]在按照該預(yù)設(shè)喚醒周期喚醒應(yīng)用程序之后,需要判斷應(yīng)用程序是否回到后臺,當該應(yīng)用程序回到后臺時,說明用戶并未正常使用該應(yīng)用程序,則可以自動關(guān)閉應(yīng)用程序,以將該應(yīng)用程序從內(nèi)存中清除,從而釋放一些內(nèi)存,避免占用過多內(nèi)存,而影響系統(tǒng)的運行性會K。
[0111]如圖5所示,在一個實施例中,所述方法還包括:
[0112]在步驟S501中,確定在預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi),所述應(yīng)用程序被喚醒后,回到所述后臺的總次數(shù);其中,該預(yù)設(shè)數(shù)目個預(yù)設(shè)喚醒周期為連續(xù)N個預(yù)設(shè)喚醒周期。
[0113]在步驟S502中,確定所述總次數(shù)與所述預(yù)設(shè)數(shù)目的比例是否大于或等于預(yù)設(shè)比例;該預(yù)設(shè)比例可以是0.7等。
[0114]在步驟S503中,當所述比例大于或等于所述預(yù)設(shè)比例、且在所述預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi)所述應(yīng)用程序最后一次被喚醒后再次回到所述后臺時,控制所述應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉通知;
[0115]當該比例大于或等于該預(yù)設(shè)比例時,說明該應(yīng)用程序每次被喚醒后,多數(shù)情況下,用戶并未使用該應(yīng)用程序,該應(yīng)用程序大部分時間處于空閑狀態(tài)并未運行,此時,如果在這些預(yù)設(shè)喚醒周期內(nèi),該應(yīng)用程序最后一次被喚醒后又一次回到后臺,說明用戶當前也未使用該應(yīng)用程序,因而為了避免長時間空閑的長連接占用系統(tǒng)資源,可以控制該應(yīng)用程序向進程發(fā)送長連接關(guān)閉通知。
[0116]在步驟S504中,通過所述進程將所述長連接關(guān)閉通知發(fā)送至所述服務(wù)器,以使所述服務(wù)器斷開與所述進程之間的所述長連接。
[0117]進而進程會將該長連接關(guān)閉通知發(fā)送至該應(yīng)用程序所對應(yīng)的服務(wù)器,以使服務(wù)器明確用戶當前并未經(jīng)常使用其對應(yīng)的應(yīng)用程序,因而,可以自動地斷開與進程之間的長連接,從而減少該應(yīng)用程序所對應(yīng)的長連接對系統(tǒng)資源的占用。
[0118]如圖6所示,在一個實施例中,當所述應(yīng)用程序包括至少兩個時,所述方法還包括:
[0119]在步驟S601中,判斷所述終端的當前剩余電量是否小于或等于預(yù)設(shè)剩余電量;
[0120]在步驟S602中,當所述當前剩余電量小于或等于所述預(yù)設(shè)剩余電量時,獲取在預(yù)設(shè)歷史時間段內(nèi)、至少兩個所述應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序;
[0121 ]在步驟S603中,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令,以使所述進程斷開與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接。
[0122]在當前剩余電量小于或等于該預(yù)設(shè)剩余電量(如30%)時,說明當前剩余電量不太夠用了,則可以自動獲取在預(yù)設(shè)歷史時間段內(nèi)、該至少兩個應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序即用戶最不常用的應(yīng)用程序,進而控制該目標應(yīng)用程序向進程發(fā)送長連接斷開指令,以使該進程自動斷開與目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接,從而減少系統(tǒng)中的長連接數(shù)目,減少對電量的消耗。
[0123]如圖7所示,在一個實施例中,上述步驟S603可被執(zhí)行為:
[0124]在步驟BI中,將所述目標應(yīng)用程序和所述當前剩余電量提示給用戶,以使所述用戶根據(jù)所述當前剩余電量確定是否斷開所述進程與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接;
[0125]在步驟B2中,在接收到所述長連接斷開指令時,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令。
[0126]為了避免誤斷開相應(yīng)的長連接,可以將該目標應(yīng)用程序和該當前剩余電量提示給用戶,以使用戶根據(jù)該當前剩余電量自主確定是否斷開進程與該目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接,從而確保只有在接收到該長連接斷開指令時,才該目標應(yīng)用程序向進程發(fā)送長連接斷開指令,避免誤斷開重要的長連接。
[0127]在一個實施例中,所述進程包括:允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程。
[0128]該進程可以是允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程,這樣即便是該應(yīng)用程序回到后臺、或者該進程運行在后臺,由于該進程仍然能夠使用網(wǎng)絡(luò),且該進程與該應(yīng)用程序所對應(yīng)的服務(wù)器的長連接依然存在,因而,該進程仍然能夠正常接收到來自其服務(wù)器發(fā)送的信息,這也使得該應(yīng)用程序在后臺時,也能夠?qū)崟r接收到來自服務(wù)器的信息,避免信息丟失或者接收不及時的問題。
[0129]另外,將該進程設(shè)置為允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程的方式也很簡單,只需要將該進程加入系統(tǒng)中預(yù)存儲的允許進行后臺聯(lián)網(wǎng)的應(yīng)用程序的白名單列表中即可。
[0130]對應(yīng)本公開實施例提供的上述終端中應(yīng)用程序的處理方法,本公開實施例還提供一種終端中應(yīng)用程序的處理裝置,如圖8所示,該裝置包括:
[0131]監(jiān)聽模塊801,用于監(jiān)聽到所述終端中的應(yīng)用程序的通信請求;
[0132]調(diào)用模塊802,用于調(diào)用所述終端中的一進程;
[0133]第一處理模塊803,用于通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接;
[0134]第二處理模塊804,用于通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。
[0135]如圖9所示,在一個實施例中,所述裝置還包括:
[0136]監(jiān)測模塊901,用于在所述應(yīng)用程序接收到所述響應(yīng)信息之后,監(jiān)測所述應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除;
[0137]喚醒模塊902,用于在所述應(yīng)用程序運行在所述后臺或者被從內(nèi)存中清除,且所述應(yīng)用程序尚未被退出時,按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0138]如圖10所示,在一個實施例中,所述喚醒模塊902包括:
[0139]控制子模塊9021,用于在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,控制所述應(yīng)用程序向所述進程發(fā)送心跳包;
[0140]發(fā)送子模塊9022,用于通過所述進程將所述心跳包發(fā)送至所述服務(wù)器,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0141]如圖11所示,在一個實施例中,所述裝置還包括:
[0142]判斷模塊1101,用于在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,判斷所述應(yīng)用程序是否回到后臺;
[0143]第三處理模塊1102,用于當所述應(yīng)用程序回到所述后臺時,關(guān)閉所述應(yīng)用程序。
[0144]如圖12所示,在一個實施例中,所述裝置還包括:
[0145]第一確定模塊1201,用于確定在預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi),所述應(yīng)用程序被喚醒后,回到所述后臺的總次數(shù);
[0146]第二確定模塊1202,用于確定所述總次數(shù)與所述預(yù)設(shè)數(shù)目的比例是否大于或等于預(yù)設(shè)比例;
[0147]第一控制模塊1203,用于當所述比例大于或等于所述預(yù)設(shè)比例、且在所述預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi)所述應(yīng)用程序最后一次被喚醒后再次回到所述后臺時,控制所述應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉通知;
[0148]發(fā)送模塊1204,用于通過所述進程將所述長連接關(guān)閉通知發(fā)送至所述服務(wù)器,以使所述服務(wù)器斷開與所述進程之間的所述長連接。
[0149]如圖13所示,在一個實施例中,所述裝置還包括:
[0150]判斷模塊1301,用于當所述應(yīng)用程序包括至少兩個時,判斷所述終端的當前剩余電量是否小于或等于預(yù)設(shè)剩余電量;
[0151]獲取模塊1302,用于當所述當前剩余電量小于或等于所述預(yù)設(shè)剩余電量時,獲取在預(yù)設(shè)歷史時間段內(nèi)、至少兩個所述應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序;
[0152]第二控制模塊1303,用于控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令,以使所述進程斷開與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接。
[0153]如圖14所示,在一個實施例中,所述第二控制模塊1303包括:
[0154]提示子模塊13031,用于將所述目標應(yīng)用程序和所述當前剩余電量提示給用戶,以使所述用戶根據(jù)所述當前剩余電量確定是否斷開所述進程與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接;
[0155]控制子模塊13032,用于在接收到所述長連接斷開指令時,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令。
[0156]在一個實施例中,所述進程包括:允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程。
[0157]根據(jù)本公開實施例的第三方面,提供一種終端中應(yīng)用程序的處理裝置,包括:
[0158]處理器;
[0159]用于存儲處理器可執(zhí)行指令的存儲器;
[0160]其中,處理器被配置為:
[0161]監(jiān)聽到所述終端中的應(yīng)用程序的通信請求;
[0162]調(diào)用所述終端中的一進程;
[0163]通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接;
[0164]通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。
[0165]上述處理器還可被配置為:
[0166]所述方法還包括:
[0167]在所述應(yīng)用程序接收到所述響應(yīng)信息之后,監(jiān)測所述應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除;
[0168]在所述應(yīng)用程序運行在所述后臺或者被從內(nèi)存中清除,且所述應(yīng)用程序尚未被退出時,按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0169]上述處理器還可被配置為:
[0170]所述按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接,包括:
[0171]在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,控制所述應(yīng)用程序向所述進程發(fā)送心跳包;
[0172]通過所述進程將所述心跳包發(fā)送至所述服務(wù)器,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0173]上述處理器還可被配置為:
[0174]所述方法還包括:
[0175]在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,判斷所述應(yīng)用程序是否回到后臺;
[0176]當所述應(yīng)用程序回到所述后臺時,關(guān)閉所述應(yīng)用程序。
[0177]上述處理器還可被配置為:
[0178]所述方法還包括:
[0179]確定在預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi),所述應(yīng)用程序被喚醒后,回到所述后臺的總次數(shù);
[0180]確定所述總次數(shù)與所述預(yù)設(shè)數(shù)目的比例是否大于或等于預(yù)設(shè)比例;
[0181]當所述比例大于或等于所述預(yù)設(shè)比例、且在所述預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi)所述應(yīng)用程序最后一次被喚醒后再次回到所述后臺時,控制所述應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉通知;
[0182]通過所述進程將所述長連接關(guān)閉通知發(fā)送至所述服務(wù)器,以使所述服務(wù)器斷開與所述進程之間的所述長連接。
[0183]上述處理器還可被配置為:
[0184]當所述應(yīng)用程序包括至少兩個時,所述方法還包括:
[0185]判斷所述終端的當前剩余電量是否小于或等于預(yù)設(shè)剩余電量;
[0186]當所述當前剩余電量小于或等于所述預(yù)設(shè)剩余電量時,獲取在預(yù)設(shè)歷史時間段內(nèi)、至少兩個所述應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序;
[0187]控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令,以使所述進程斷開與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接。
[0188]上述處理器還可被配置為:
[0189]所述控制所述目標應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉指令,包括:
[0190]將所述目標應(yīng)用程序和所述當前剩余電量提示給用戶,以使所述用戶根據(jù)所述當前剩余電量確定是否斷開所述進程與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接;
[0191 ]在接收到所述長連接斷開指令時,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令。
[0192]上述處理器還可被配置為:
[0193]所述進程包括:允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程。
[0194]圖15是根據(jù)一示例性實施例示出的一種用于終端中應(yīng)用程序的處理裝置1500的框圖,該裝置適用于終端設(shè)備。例如,裝置1500可以是移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺,平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個人數(shù)字助理等。
[0195]參照圖15,裝置1500可以包括以下一個或至少兩個組件:處理組件1502,存儲器1504,電源組件1506,多媒體組件1508,音頻組件1510,輸入/輸出(I /0)的接口 1512,傳感器組件1514,以及通信組件1516。
[0196]處理組件1502通??刂蒲b置1500的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關(guān)聯(lián)的操作。處理組件1502可以包括一個或至少兩個處理器1520來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件1502可以包括一個或至少兩個模塊,便于處理組件1502和其他組件之間的交互。例如,處理組件1502可以包括多媒體模塊,以方便多媒體組件1508和處理組件1502之間的交互。
[0197]存儲器1504被配置為存儲各種類型的數(shù)據(jù)以支持在設(shè)備1500的操作。這些數(shù)據(jù)的示例包括用于在裝置1500上操作的任何存儲對象或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器1504可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPR0M),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
[0198]電源組件1506為裝置1500的各種組件提供電力。電源組件1506可以包括電源管理系統(tǒng),一個或至少兩個電源,及其他與為裝置1500生成、管理和分配電力相關(guān)聯(lián)的組件。
[0199]多媒體組件1508包括在所述裝置1500和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或至少兩個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關(guān)的持續(xù)時間和壓力。在一些實施例中,多媒體組件1508包括一個前置攝像頭和/或后置攝像頭。當設(shè)備1500處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學透鏡系統(tǒng)或具有焦距和光學變焦能力。
[0200]音頻組件1510被配置為輸出和/或輸入音頻信號。例如,音頻組件1510包括一個麥克風(MIC),當裝置1500處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器1504或經(jīng)由通信組件1516發(fā)送。在一些實施例中,音頻組件1510還包括一個揚聲器,用于輸出音頻信號。[0201 ] I/O接口 1512為處理組件1502和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
[0202]傳感器組件1514包括一個或至少兩個傳感器,用于為裝置1500提供各個方面的狀態(tài)評估。例如,傳感器組件1514可以檢測到設(shè)備1500的打開/關(guān)閉狀態(tài),組件的相對定位,例如所述組件為裝置1500的顯示器和小鍵盤,傳感器組件1514還可以檢測裝置1500或裝置1500—個組件的位置改變,用戶與裝置1500接觸的存在或不存在,裝置1500方位或加速/減速和裝置1500的溫度變化。傳感器組件1514可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件1514還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實施例中,該傳感器組件1514還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
[0203]通信組件1516被配置為便于裝置1500和其他設(shè)備之間有線或無線方式的通信。裝置1500可以接入基于通信標準的無線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件1516經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實施例中,所述通信組件1516還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍牙(BT)技術(shù)和其他技術(shù)來實現(xiàn)。
[0204]在示例性實施例中,裝置1500可以被一個或至少兩個應(yīng)用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子組件實現(xiàn),用于執(zhí)行上述方法。
[0205]在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質(zhì),例如包括指令的存儲器1504,上述指令可由裝置1500的處理器1520執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質(zhì)可以是R0M、隨機存取存儲器(RAM)、CD-R0M、磁帶、軟盤和光數(shù)據(jù)存儲設(shè)備等。
[0206]—種非臨時性計算機可讀存儲介質(zhì),當所述存儲介質(zhì)中的指令由上述裝置1500的處理器執(zhí)行時,使得上述裝置1500能夠執(zhí)行一種終端中應(yīng)用程序的處理方法,包括:
[0207]監(jiān)聽到所述終端中的應(yīng)用程序的通信請求;
[0208]調(diào)用所述終端中的一進程;
[0209]通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接;
[0210]通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。
[0211]在一個實施例中,所述方法還包括:
[0212]在所述應(yīng)用程序接收到所述響應(yīng)信息之后,監(jiān)測所述應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除;
[0213]在所述應(yīng)用程序運行在所述后臺或者被從內(nèi)存中清除,且所述應(yīng)用程序尚未被退出時,按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0214]在一個實施例中,所述按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接,包括:
[0215]在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,控制所述應(yīng)用程序向所述進程發(fā)送心跳包;
[0216]通過所述進程將所述心跳包發(fā)送至所述服務(wù)器,以使所述服務(wù)器保持與所述進程之間的所述長連接。
[0217]在一個實施例中,所述方法還包括:
[0218]在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,判斷所述應(yīng)用程序是否回到后臺;
[0219]當所述應(yīng)用程序回到所述后臺時,關(guān)閉所述應(yīng)用程序。
[0220]在一個實施例中,所述方法還包括:
[0221 ]確定在預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi),所述應(yīng)用程序被喚醒后,回到所述后臺的總次數(shù);
[0222]確定所述總次數(shù)與所述預(yù)設(shè)數(shù)目的比例是否大于或等于預(yù)設(shè)比例;
[0223]當所述比例大于或等于所述預(yù)設(shè)比例、且在所述預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi)所述應(yīng)用程序最后一次被喚醒后再次回到所述后臺時,控制所述應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉通知;
[0224]通過所述進程將所述長連接關(guān)閉通知發(fā)送至所述服務(wù)器,以使所述服務(wù)器斷開與所述進程之間的所述長連接。
[0225]在一個實施例中,當所述應(yīng)用程序包括至少兩個時,所述方法還包括:
[0226]判斷所述終端的當前剩余電量是否小于或等于預(yù)設(shè)剩余電量;
[0227]當所述當前剩余電量小于或等于所述預(yù)設(shè)剩余電量時,獲取在預(yù)設(shè)歷史時間段內(nèi)、至少兩個所述應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序;
[0228]控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令,以使所述進程斷開與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接。
[0229]在一個實施例中,所述控制所述目標應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉指令,包括:
[0230]將所述目標應(yīng)用程序和所述當前剩余電量提示給用戶,以使所述用戶根據(jù)所述當前剩余電量確定是否斷開所述進程與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接;[0231 ]在接收到所述長連接斷開指令時,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令。
[0232]在一個實施例中,所述進程包括:允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程。
[0233]本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的公開后,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本公開的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本公開的真正范圍和精神由下面的權(quán)利要求指出。
[0234]應(yīng)當理解的是,本公開并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本公開的范圍僅由所附的權(quán)利要求來限制。
【主權(quán)項】
1.一種終端中應(yīng)用程序的處理方法,其特征在于,包括: 監(jiān)聽到所述終端中的應(yīng)用程序的通信請求; 調(diào)用所述終端中的一進程; 通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接; 通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在所述應(yīng)用程序接收到所述響應(yīng)信息之后,監(jiān)測所述應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除; 在所述應(yīng)用程序運行在所述后臺或者被從內(nèi)存中清除,且所述應(yīng)用程序尚未被退出時,按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接。3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接,包括: 在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,控制所述應(yīng)用程序向所述進程發(fā)送心跳包; 通過所述進程將所述心跳包發(fā)送至所述服務(wù)器,以使所述服務(wù)器保持與所述進程之間的所述長連接。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,判斷所述應(yīng)用程序是否回到后臺; 當所述應(yīng)用程序回到所述后臺時,關(guān)閉所述應(yīng)用程序。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 確定在預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi),所述應(yīng)用程序被喚醒后,回到所述后臺的總次數(shù); 確定所述總次數(shù)與所述預(yù)設(shè)數(shù)目的比例是否大于或等于預(yù)設(shè)比例; 當所述比例大于或等于所述預(yù)設(shè)比例、且在所述預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi)所述應(yīng)用程序最后一次被喚醒后再次回到所述后臺時,控制所述應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉通知; 通過所述進程將所述長連接關(guān)閉通知發(fā)送至所述服務(wù)器,以使所述服務(wù)器斷開與所述進程之間的所述長連接。6.根據(jù)權(quán)利要求1至5中任一項所述的方法,其特征在于,當所述應(yīng)用程序包括至少兩個時,所述方法還包括: 判斷所述終端的當前剩余電量是否小于或等于預(yù)設(shè)剩余電量; 當所述當前剩余電量小于或等于所述預(yù)設(shè)剩余電量時,獲取在預(yù)設(shè)歷史時間段內(nèi)、至少兩個所述應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序; 控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令,以使所述進程斷開與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接。7.根據(jù)權(quán)利要求6所述的方法,其特征在于, 所述控制所述目標應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉指令,包括: 將所述目標應(yīng)用程序和所述當前剩余電量提示給用戶,以使所述用戶根據(jù)所述當前剩余電量確定是否斷開所述進程與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接; 在接收到所述長連接斷開指令時,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令。8.根據(jù)權(quán)利要求1至5中任一項所述的方法,其特征在于, 所述進程包括:允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程。9.一種終端中應(yīng)用程序的處理裝置,其特征在于,包括: 監(jiān)聽模塊,用于監(jiān)聽到所述終端中的應(yīng)用程序的通信請求; 調(diào)用模塊,用于調(diào)用所述終端中的一進程; 第一處理模塊,用于通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接; 第二處理模塊,用于通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 監(jiān)測模塊,用于在所述應(yīng)用程序接收到所述響應(yīng)信息之后,監(jiān)測所述應(yīng)用程序是否運行在后臺或者是否被從內(nèi)存中清除; 喚醒模塊,用于在所述應(yīng)用程序運行在所述后臺或者被從內(nèi)存中清除,且所述應(yīng)用程序尚未被退出時,按照預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序,以使所述服務(wù)器保持與所述進程之間的所述長連接。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于, 所述喚醒模塊包括: 控制子模塊,用于在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,控制所述應(yīng)用程序向所述進程發(fā)送心跳包; 發(fā)送子模塊,用于通過所述進程將所述心跳包發(fā)送至所述服務(wù)器,以使所述服務(wù)器保持與所述進程之間的所述長連接。12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于在按照所述預(yù)設(shè)喚醒周期喚醒所述應(yīng)用程序之后,判斷所述應(yīng)用程序是否回到后臺; 第三處理模塊,用于當所述應(yīng)用程序回到所述后臺時,關(guān)閉所述應(yīng)用程序。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括: 第一確定模塊,用于確定在預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi),所述應(yīng)用程序被喚醒后,回到所述后臺的總次數(shù); 第二確定模塊,用于確定所述總次數(shù)與所述預(yù)設(shè)數(shù)目的比例是否大于或等于預(yù)設(shè)比例; 第一控制模塊,用于當所述比例大于或等于所述預(yù)設(shè)比例、且在所述預(yù)設(shè)數(shù)目個所述預(yù)設(shè)喚醒周期內(nèi)所述應(yīng)用程序最后一次被喚醒后再次回到所述后臺時,控制所述應(yīng)用程序向所述進程發(fā)送長連接關(guān)閉通知; 發(fā)送模塊,用于通過所述進程將所述長連接關(guān)閉通知發(fā)送至所述服務(wù)器,以使所述服務(wù)器斷開與所述進程之間的所述長連接。14.根據(jù)權(quán)利要求9至13中任一項所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于當所述應(yīng)用程序包括至少兩個時,判斷所述終端的當前剩余電量是否小于或等于預(yù)設(shè)剩余電量; 獲取模塊,用于當所述當前剩余電量小于或等于所述預(yù)設(shè)剩余電量時,獲取在預(yù)設(shè)歷史時間段內(nèi)、至少兩個所述應(yīng)用程序中前臺運行時間最短的目標應(yīng)用程序; 第二控制模塊,用于控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令,以使所述進程斷開與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接。15.根據(jù)權(quán)利要求14所述的裝置,其特征在于, 所述第二控制模塊包括: 提示子模塊,用于將所述目標應(yīng)用程序和所述當前剩余電量提示給用戶,以使所述用戶根據(jù)所述當前剩余電量確定是否斷開所述進程與所述目標應(yīng)用程序所對應(yīng)的服務(wù)器之間的長連接; 控制子模塊,用于在接收到所述長連接斷開指令時,控制所述目標應(yīng)用程序向所述進程發(fā)送長連接斷開指令。16.根據(jù)權(quán)利要求9至13中任一項所述的裝置,其特征在于, 所述進程包括:允許進行后臺聯(lián)網(wǎng)的系統(tǒng)進程。17.—種終端中應(yīng)用程序的處理裝置,其特征在于,包括: 處理器; 用于存儲處理器可執(zhí)行指令的存儲器; 其中,所述處理器被配置為: 監(jiān)聽到所述終端中的應(yīng)用程序的通信請求; 調(diào)用所述終端中的一進程; 通過所述進程將所述通信請求發(fā)送至所述應(yīng)用程序所對應(yīng)的服務(wù)器,并建立所述進程與所述服務(wù)器之間的長連接; 通過所述進程接收所述服務(wù)器針對所述通信請求返回的響應(yīng)信息,并將所述響應(yīng)信息發(fā)送至所述應(yīng)用程序。
【文檔編號】G06F9/48GK105893129SQ201610195147
【公開日】2016年8月24日
【申請日】2016年3月30日
【發(fā)明人】史大龍, 孫超, 林錦濱
【申請人】北京小米移動軟件有限公司