因為最近負責的項目需要實現實時定位的功能,所以研究了下與大家分享下成果.
蘋果官方在iOS7.1以后對CoreLocation SDK進行更新,允許開發者在App被殺死的情況下,仍然可以獲取用戶的地理位置并且做一些操作.
前期準備:
打開后臺定位功能
plist文件配置這兩項
接下來是最核心的地方,創建一個CLLocationManager子類:
.h文件
CLLocationManager.h
.m文件
單例的生成與初始變量的初始化
最重要的部分:
限制觸發機制
最后是AppDelegate初始化,在app被殺死的情況下,地理位置發生重大變化,apple系統會自動幫你喚醒app:
初始化
好了,所有配置都已經準備好了,現在讓我們開始測試下,打開模擬器Debug-Location-FreewayDriver,然后后臺殺死App,我這邊是通過沙盒記錄地理位置,通過tableview顯示:
藍色的為App前臺記錄的地理位置,紅色為被殺死情況下記錄的位置
本博文參考自Ricky的博文.?
中文參考 .