本發(fā)明涉及一種定位方法及系統(tǒng),特別是涉及一種移動(dòng)應(yīng)用的無限后臺定位方法及系統(tǒng)。
背景技術(shù):
現(xiàn)有的移動(dòng)終端可以支持多任務(wù)并行處理,用戶可以同時(shí)打開多個(gè)應(yīng)用程序,當(dāng)前需要使用的應(yīng)用程序所在進(jìn)程在系統(tǒng)前臺運(yùn)行,暫時(shí)無需使用的應(yīng)用程序在系統(tǒng)后臺運(yùn)行,若用戶需要切換應(yīng)用程序時(shí),將在后臺運(yùn)行的應(yīng)用程序轉(zhuǎn)入前臺運(yùn)行即可,由于已經(jīng)開啟的應(yīng)用程序始終在后臺運(yùn)行,因此,可以快速地將后臺進(jìn)程切換到前臺運(yùn)行,但是這種應(yīng)用程序進(jìn)程管理方法是也存在嚴(yán)重問題:由于暫時(shí)無需使用的應(yīng)用程序所在進(jìn)行始終處于系統(tǒng)后臺,可以被CPU調(diào)用,必然會占用一定的系統(tǒng)資源,而且過多后臺進(jìn)程會消耗額外的電量,如果系統(tǒng)后臺運(yùn)行的應(yīng)用程序所在線程需要網(wǎng)絡(luò)連接,這樣還會消耗額外流量。
針對上述問題,目前的做法主要是限制應(yīng)用程序掛起的時(shí)間,即當(dāng)將應(yīng)用程序掛起處于后臺時(shí)限制其在后臺運(yùn)行時(shí)間不超過一段時(shí)間(例如10分鐘),在超過10分鐘后,移動(dòng)終端系統(tǒng)處于安全考慮會關(guān)掉(凍結(jié))后臺不運(yùn)行的程序。這樣就導(dǎo)致不能連續(xù)向指定的服務(wù)器(應(yīng)用程序?qū)?yīng)的)報(bào)告當(dāng)前移動(dòng)終端的真實(shí)位置信息,服務(wù)器則無法準(zhǔn)確獲得移動(dòng)終端的當(dāng)前位置信息。
技術(shù)實(shí)現(xiàn)要素:
為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明之目的在于提供一種移動(dòng)應(yīng)用的無限后臺定位方法及系統(tǒng),以在不增加消耗移動(dòng)終端額外電量和流量的基礎(chǔ)上,實(shí)現(xiàn)移動(dòng)應(yīng)用的無限后臺定位。
為達(dá)上述及其它目的,本發(fā)明提出一種移動(dòng)應(yīng)用的無限后臺定位方法,包括如下步驟:
步驟一,當(dāng)檢測到某一應(yīng)用程序被掛起進(jìn)入后臺時(shí),啟動(dòng)A線程,獲取移動(dòng)終端的位置信息,發(fā)送到該應(yīng)用程序?qū)?yīng)的服務(wù)器;
步驟二,啟動(dòng)第一線程,等待該A線程完成后,擊殺該A線程;
步驟三,重新啟動(dòng)A線程,繼續(xù)獲取該移動(dòng)終端的位置信息并上報(bào)至該應(yīng)用程序?qū)?yīng)的服務(wù)器,同時(shí)啟動(dòng)第二線程,該第一線程自殺;
步驟四,該第二線程替代該第一線程,等待A線程完成后,擊殺該A線程,并進(jìn)入步驟三。
進(jìn)一步地,于步驟三中,由該第一線程重新啟動(dòng)A線程。
進(jìn)一步地,于步驟三中,該第一線程啟動(dòng)該第二線程。
進(jìn)一步地,該第二線程接替第一線程過程刷新后臺一段時(shí)間的生命周期。
進(jìn)一步地,于步驟一中,A線程獲取到移動(dòng)終端的位置信息,進(jìn)行地址偏移修正后,發(fā)送到該應(yīng)用程序?qū)?yīng)的服務(wù)器。
為達(dá)到上述目的,本發(fā)明還提供一種移動(dòng)應(yīng)用的無限后臺定位系統(tǒng),包括:
掛起偵測處理單元,于檢測到某一應(yīng)用程序被掛起進(jìn)入后臺時(shí),啟動(dòng)A線程,獲取移動(dòng)終端的位置信息,發(fā)送到該應(yīng)用程序?qū)?yīng)的服務(wù)器;
第一線程啟動(dòng)單元,用于啟動(dòng)第一線程,等待該A線程完成后,擊殺該A線程;
重啟單元,重新啟動(dòng)A線程,繼續(xù)獲取該移動(dòng)終端的位置信息并上報(bào)至該應(yīng)用程序?qū)?yīng)的服務(wù)器,并啟動(dòng)第二線程啟動(dòng)單元;
第二線程啟動(dòng)單元,啟動(dòng)第二線程,該第一線程自殺,該第二線程替代該第一線程,等待A線程完成后,擊殺A線程,并重新啟動(dòng)該重啟單元。
進(jìn)一步地,該重啟單元利用該第一線程重新啟動(dòng)該A線程。
進(jìn)一步地,該第二線程啟動(dòng)單元利用該第一線程啟動(dòng)該第二線程。
進(jìn)一步地,該第二線程接替第一線程過程刷新后臺一段時(shí)間的生命周期。
進(jìn)一步地,該A線程獲取到移動(dòng)終端的位置信息,進(jìn)行地址偏移修正后,發(fā)送到該應(yīng)用程序?qū)?yīng)的服務(wù)器。
與現(xiàn)有技術(shù)相比,本發(fā)明一種移動(dòng)應(yīng)用的無限后臺定位方法通過利用兩個(gè)線程來控制移動(dòng)終端的后臺并刷新時(shí)間,在不增加消耗移動(dòng)終端額外電量和流量的基礎(chǔ)上,實(shí)現(xiàn)了移動(dòng)應(yīng)用的無限后臺定位。
附圖說明
圖1為本發(fā)明一種移動(dòng)應(yīng)用的無限后臺定位方法的步驟流程圖;
圖2為本發(fā)明一種移動(dòng)應(yīng)用的無限后臺定位系統(tǒng)的系統(tǒng)架構(gòu)圖;
圖3為本發(fā)明較佳實(shí)施例之后臺定位過程的示意圖。
具體實(shí)施方式
以下通過特定的具體實(shí)例并結(jié)合附圖說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭示的內(nèi)容輕易地了解本發(fā)明的其它優(yōu)點(diǎn)與功效。本發(fā)明亦可通過其它不同的具體實(shí)例加以施行或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)亦可基于不同觀點(diǎn)與應(yīng)用,在不背離本發(fā)明的精神下進(jìn)行各種修飾與變更。
圖1為本發(fā)明一種移動(dòng)應(yīng)用的無限后臺定位方法的步驟流程圖。如圖1所示,本發(fā)明一種移動(dòng)應(yīng)用的無限后臺定位方法,包括如下步驟:
步驟101,當(dāng)檢測到某一應(yīng)用程序被掛起進(jìn)入后臺時(shí),啟動(dòng)A線程,獲取移動(dòng)終端的位置信息,進(jìn)行地址偏移修正后,發(fā)送到該應(yīng)用程序?qū)?yīng)的服務(wù)器。也就是說,當(dāng)用戶對移動(dòng)終端(例如智能手機(jī))的某一應(yīng)用程序(APP,例如QQ)掛起時(shí),該APP進(jìn)入后臺且只有10分鐘的生命周期,此時(shí),啟動(dòng)A線程,利用移動(dòng)終端的定位設(shè)備獲取移動(dòng)終端的位置信息,并進(jìn)行地址偏移修正后,發(fā)送到該APP(例如QQ)對應(yīng)的服務(wù)器(QQ服務(wù)器),在本發(fā)明具體實(shí)施例中,地址偏移修正根據(jù)地圖坐標(biāo)偏移算法實(shí)現(xiàn),由于地圖坐標(biāo)偏移算法為現(xiàn)有技術(shù),在此不予贅述。
步驟102,啟動(dòng)第一線程,等待A線程完成后,擊殺A線程。也就是說,在A線程啟動(dòng)的同時(shí),啟動(dòng)第一線程(例如線程B),該第一線程(例如B線程)用于監(jiān)控管理A線程,第一線程(B線程)等待A線程完成后,主動(dòng)關(guān)閉A線程。
步驟103,該第一線程重新啟動(dòng)A線程,繼續(xù)獲取移動(dòng)終端的位置信息并上報(bào)至該應(yīng)用程序?qū)?yīng)的服務(wù)器,同時(shí)啟動(dòng)另一個(gè)管理線程(第二線程),然后第一線程自殺,即該第一線程啟動(dòng)第二線程(例如C線程),由第二線程(例如C線程)接替第一線程(例如B線程)進(jìn)行工作,第一線程主動(dòng)關(guān)閉,該接替過程會刷新后臺10分鐘的生命周期。
步驟104,該第二線程等待A線程完成后,擊殺A線程,即,此時(shí)由該第二線程(C線程)接替第一線程對A線程進(jìn)行監(jiān)控管理,該第二線程(C線程)等待A線程完成后,主動(dòng)關(guān)閉A線程,并進(jìn)入步驟103,一直循環(huán)。
圖2為本發(fā)明一種移動(dòng)應(yīng)用的無限后臺定位系統(tǒng)的系統(tǒng)架構(gòu)圖。如圖2所示,本發(fā)明一種移動(dòng)應(yīng)用的無限后臺定位系統(tǒng),包括:掛起偵測處理單元201、第一線程啟動(dòng)單元202、重啟單元203以及第二線程啟動(dòng)單元204。
掛起偵測處理單元201,于檢測到某一應(yīng)用程序被掛起進(jìn)入后臺時(shí),啟動(dòng)A線程,獲取移動(dòng)終端的位置信息,進(jìn)行地址偏移修正后,發(fā)送到該應(yīng)用程序?qū)?yīng)的服務(wù)器。也就是說,當(dāng)用戶對移動(dòng)終端(例如智能手機(jī))的某一應(yīng)用程序(APP,例如QQ)掛起時(shí),該APP進(jìn)入后臺且只有10分鐘的生命周期,此時(shí),掛起偵測處理單元201會啟動(dòng)A線程,利用移動(dòng)終端的定位設(shè)備獲取該移動(dòng)終端的位置信息,并進(jìn)行地址偏移修正后,發(fā)送到該APP(例如QQ)對應(yīng)的服務(wù)器(QQ服務(wù)器)。
第一線程啟動(dòng)單元202,用于啟動(dòng)第一線程,等待A線程完成后,擊殺A線程。也就是說,在A線程啟動(dòng)的同時(shí),啟動(dòng)第一線程,該第一線程用于監(jiān)控管理A線程,第一線程等待A線程完成后,主動(dòng)關(guān)閉A線程。
重啟單元203,利用第一線程重新啟動(dòng)A線程,繼續(xù)獲取移動(dòng)終端的位置信息并上報(bào)至該應(yīng)用程序?qū)?yīng)的服務(wù)器,并啟動(dòng)第二線程啟動(dòng)單元204。
第二線程啟動(dòng)單元204,利用第一線程啟動(dòng)第二線程,然后第一線程自殺,第二線程等待A線程完成后,擊殺A線程,并再次啟動(dòng)重啟單元203。即,利用第一線程啟動(dòng)第二線程,由第二線程接替第一線程進(jìn)行工作,第一線程主動(dòng)關(guān)閉,該接替過程會刷新后臺10分鐘的生命周期,此時(shí)由第二線程替代第一線程對A線程進(jìn)行監(jiān)控管理,該第二線程作為第一線程等待A線程完成后,主動(dòng)關(guān)閉A線程,并重新啟動(dòng)重啟單元203。
圖3為本發(fā)明較佳實(shí)施例之后臺定位過程的示意圖。在本發(fā)明中,通過兩個(gè)線程(線程B與線程C)來控制移動(dòng)終端的后臺并刷新時(shí)間,當(dāng)用戶通過移動(dòng)終端利用掛起偵測處理單元掛起某一應(yīng)用程序(app,例如QQ)后,該APP進(jìn)入后臺此時(shí)該APP只有10分鐘生命周期。
1.啟動(dòng)A線程(第一單元),獲取移動(dòng)終端(即用戶)的位置信息,通行地址偏移修正后,發(fā)送到QQ服務(wù)器;
2.啟動(dòng)B線程(第二單元),等待A線程完成后,擊殺A線程(第一單元)。
3.重新啟動(dòng)A線程(第一單元),繼續(xù)獲取用戶的位置信息并上報(bào)至QQ服務(wù)器,即繼續(xù)監(jiān)察A線程(第一單元)。
4.B線程(第二單元)啟動(dòng)C線程(第三單元),然后B線程(第二單元)自殺。由C線程(第三單元)接替B線程(第二單元)工作,這個(gè)接替過程會刷新后臺10分鐘的生周期。
5.由C線程(第三單元)替代B線程(第二單元)后,重新?lián)魵線程(第一單元)。
6.返回第3步,即繼續(xù)監(jiān)察A線程(第一單元),一直循環(huán)。
綜上所述,本發(fā)明一種移動(dòng)應(yīng)用的無限后臺定位方法通過利用兩個(gè)線程來控制移動(dòng)終端的后臺并刷新時(shí)間,在不增加消耗移動(dòng)終端額外電量和流量的基礎(chǔ)上,實(shí)現(xiàn)了移動(dòng)應(yīng)用的無限后臺定位。本發(fā)明可以使應(yīng)用程序服務(wù)器獲取所有安裝該應(yīng)用程序的用戶的位置信息,獲取用戶的所有行為軌跡。
任何本領(lǐng)域技術(shù)人員均可在不違背本發(fā)明的精神及范疇下,對上述實(shí)施例進(jìn)行修飾與改變。因此,本發(fā)明的權(quán)利保護(hù)范圍,應(yīng)如權(quán)利要求書所列。