1.先說(shuō)說(shuō)iOS 應(yīng)用程序5個(gè)狀態(tài):
停止運(yùn)行-應(yīng)用程序已經(jīng)終止液茎,或者還未啟動(dòng)砰盐。
不活動(dòng)-應(yīng)用程序處于前臺(tái)但不再接收事件(例如外臂,用戶在app處于活動(dòng)時(shí)鎖住了設(shè)備)湿硝。
活動(dòng)-app處于“使用中”的狀態(tài)。
后臺(tái)-app不在屏幕上顯示奏篙,但它仍然執(zhí)行代碼柴淘。
掛起-app仍然駐留內(nèi)存但不再執(zhí)行代碼。
按下Home鍵時(shí)秘通,app從活動(dòng)狀態(tài)轉(zhuǎn)入后臺(tái)为严,絕大部分app通常在180秒內(nèi)就從后臺(tái)變成了掛起。
在內(nèi)存吃緊的時(shí)候肺稀,iPhone會(huì)首先關(guān)閉那些掛起的app第股。
現(xiàn)在的iOS系統(tǒng),都會(huì)在你按下Home鍵時(shí)话原,app從活動(dòng)狀態(tài)轉(zhuǎn)入后臺(tái)夕吻,絕大部分app通常在300秒內(nèi)就從后臺(tái)變成了掛起;
2.如果想要無(wú)限制的后臺(tái)運(yùn)行繁仁,那就需要自己向iOS系統(tǒng)申請(qǐng)app后臺(tái)運(yùn)行涉馅。
現(xiàn)在的iOS系統(tǒng)可以申請(qǐng)后臺(tái)運(yùn)行的api為:
3、iOS為了讓設(shè)備盡量省電黄虱,減少不必要的開(kāi)銷稚矿,保持系統(tǒng)流暢,因而對(duì)后臺(tái)機(jī)制采用墓碑式的“假后臺(tái)”。除了系統(tǒng)官方極少數(shù)程序可以真后臺(tái)晤揣,一般開(kāi)發(fā)者開(kāi)發(fā)出來(lái)的應(yīng)用程序后臺(tái)受到以下限制:
1.用戶按Home之后偶翅,App轉(zhuǎn)入后臺(tái)進(jìn)行運(yùn)行,此時(shí)擁有180s后臺(tái)時(shí)間(iOS7)或者600s(iOS6)運(yùn)行時(shí)間可以處理后臺(tái)操作
2.當(dāng)180S或者600S時(shí)間過(guò)去之后碉渡,可以告知系統(tǒng)未完成任務(wù),需要申請(qǐng)繼續(xù)完成母剥,系統(tǒng)批準(zhǔn)申請(qǐng)之后滞诺,可以繼續(xù)運(yùn)行,但總時(shí)間不會(huì)超過(guò)10分鐘环疼。
3.當(dāng)10分鐘時(shí)間到之后习霹,無(wú)論怎么向系統(tǒng)申請(qǐng)繼續(xù)后臺(tái),系統(tǒng)會(huì)強(qiáng)制掛起App炫隶,掛起所有后臺(tái)操作淋叶、線程,直到用戶再次點(diǎn)擊App之后才會(huì)繼續(xù)運(yùn)行伪阶。
4.下面我就使用定位服務(wù)來(lái)實(shí)現(xiàn)iOS的后臺(tái)無(wú)限制運(yùn)行
4煞檩、代碼實(shí)現(xiàn)
4.1、配置工程
在工程->targets->Capabilities->Background Modes
在info.plist中配置定位權(quán)限:
4.2栅贴、直接擼代碼:
因?yàn)閕OS7斟湃、iOS8、iOS9中定位都有所區(qū)別檐薯,所以我們需要判斷不同的系統(tǒng)版本來(lái)進(jìn)行相應(yīng)的處理
判斷系統(tǒng)版本:[[[UIDevice currentDevice] systemVersion ] floatValue]
運(yùn)用系統(tǒng)的定位方法凝赛,在這里我封裝了一個(gè)定位方法:
GitHub地址:https://github.com/CookiesFor/Location.git
4.3、使用方法:
在你需要啟用后臺(tái)定位的地方
先判斷手機(jī)的后臺(tái)定位是否可用:
手機(jī)定位如果可以使用坛缕,則開(kāi)啟定位服務(wù):
self.bgLocation = [[BGLogation alloc]init];
[self.bgLocation startLocation];
在需要關(guān)閉的時(shí)候關(guān)閉定位服務(wù):
[self.bgLocation stopLocation];
注意:此處的self.bgLocation一定要和開(kāi)啟的時(shí)候是一個(gè)對(duì)象
歡迎大家指正和補(bǔ)充墓猎,共同學(xué)習(xí)探討!W毙沾!
在這里也要感謝,大家關(guān)于定位的博客宠页。