需求:不知是過去的某一天,產(chǎn)品汪汪給我說“.....需要定位數(shù)據(jù),我們需要每隔一個小時上報一次定位位置.......”。當(dāng)我聽到這個需求的時候杆勇,一臉茫然。本人最不喜歡的就是寫地圖和定位啦饱亿。??不??啦蚜退!由于是一個人開發(fā),沒辦法只能硬著頭皮寫啊彪笼。剛開始各種百度各種尋找思路呀钻注、痛苦呀。什么應(yīng)用處于后臺杰扫,在一定時間內(nèi)系統(tǒng)要回收資源队寇。什么玩意,反正是一頭露水章姓。
根據(jù)各位大神的分享有??幾條思路:
1.創(chuàng)建很多任務(wù)佳遣,在系統(tǒng)??之前創(chuàng)建一個新的任務(wù)。這樣如此循環(huán)凡伊。最終零渐,我沒成功。
2.描述不清楚了系忙,詳情了解iOS開發(fā) - 百度地圖后臺持續(xù)定位诵盼。最終,我還是沒能成功银还。
3.加一個無聲音頻一直播放风宁。最終,我終于成功了蛹疯。問題來了戒财,打電話類似的情況下打斷播放。這個問題還好解決捺弦,音頻代理可以很好的處理饮寞。又有一個問題孝扛,如果開啟另一個音頻播放軟件,并且一直播放呢幽崩?性能方面也很差苦始,還怕審核悲劇。等等問題太多啦慌申。最終陌选,我放棄這個方法啦。
4.讓接口可以寫一個推送消息太示,每隔一個小時告訴APP你需要發(fā)送定位消息啦柠贤。這只是我們的想想。最終类缤,我沒有去驗(yàn)證是否行得通臼勉。
還有零零散散的想法,我就記不到啦餐弱。
??說說我最終成功的思路:
1.在plist設(shè)置定位權(quán)限配置宴霸。設(shè)置NSLocationUsageDescription說明定位的目的(Privacy - Location Usage Description)
2.開啟進(jìn)入后臺需要定位服務(wù)。選擇project --> capabilities-->Backgorund Modes --> Location updates 如圖:
3.創(chuàng)建CLLocationManager膏蚓,設(shè)置相應(yīng)的屬性瓢谢。
4.設(shè)置CLLocationManager的代理中設(shè)置定時器。
只需要??四步后臺持久定位不再是難題啦驮瞧。????氓扛!
Demo-持久定位