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