iOS7以后如何在App被杀死的情况下仍然获取用户地理位置

因为最近负责的项目需要实现实时定位的功能,所以研究了下与大家分享下成果.

苹果官方在iOS7.1以后对CoreLocation SDK进行更新,允许开发者在App被杀死的情况下,仍然可以获取用户的地理位置并且做一些操作.

前期准备:


iOS7以后如何在App被杀死的情况下仍然获取用户地理位置_第1张图片
打开后台定位功能


iOS7以后如何在App被杀死的情况下仍然获取用户地理位置_第2张图片
plist文件配置这两项

接下来是最核心的地方,创建一个CLLocationManager子类:

.h文件


iOS7以后如何在App被杀死的情况下仍然获取用户地理位置_第3张图片
CLLocationManager.h

.m文件


iOS7以后如何在App被杀死的情况下仍然获取用户地理位置_第4张图片
单例的生成与初始变量的初始化

最重要的部分:


iOS7以后如何在App被杀死的情况下仍然获取用户地理位置_第5张图片
限制触发机制

最后是AppDelegate初始化,在app被杀死的情况下,地理位置发生重大变化,apple系统会自动帮你唤醒app:


iOS7以后如何在App被杀死的情况下仍然获取用户地理位置_第6张图片
初始化


好了,所有配置都已经准备好了,现在让我们开始测试下,打开模拟器Debug-Location-FreewayDriver,然后后台杀死App,我这边是通过沙盒记录地理位置,通过tableview显示:


iOS7以后如何在App被杀死的情况下仍然获取用户地理位置_第7张图片
蓝色的为App前台记录的地理位置,红色为被杀死情况下记录的位置

本博文参考自Ricky的博文. 

中文参考 .

Demo下载 



你可能感兴趣的:(iOS7以后如何在App被杀死的情况下仍然获取用户地理位置)