pausesLocationUpdatesAutomatically [CLLocationManager]后重新启动locationUpates

kok*_*uch 4 iphone gps core-location cllocationmanager ios

我想知道iOS系统是否在pausesLocationUpdatesAutomatically属性自动暂停后自动重启CLLocationManager的locationUpdates,或者我是否必须自己处理这个案例.

如果是,根据哪些规则,如果不知道如何知道我再次开始移动并应重新启动locationUpdates?

tan*_*one 6

如果你设置

yourLocationManager.pausesLocationUpdatesAutomatically = YES;
Run Code Online (Sandbox Code Playgroud)

你还应该设置一个值

yourLocationManager.activityType
Run Code Online (Sandbox Code Playgroud)

"位置管理器使用此属性中的信息作为提示,以确定何时可以自动暂停位置更新.暂停更新使系统有机会在用户位置不太可能发生变化的情况下节省电量.例如,如果活动类型是CLActivityTypeAutomotiveNavigation,最近没有发生任何位置变化,无线电可能会关闭,直到再次检测到移动为止."

更新:更改Apple文档 "暂停发生后,当您确定需要它们时,您有责任再次重新启动位置服务.Core Location调用位置管理器代理的locationManagerDidPauseLocationUpdates(_ :)方法,让您知道暂停已经发生.在该方法中,您可以配置其触发器类型为UNLocationNotificationTrigger的本地通知,并设置为在用户退出当前区域时通知.本地通知的消息应提示用户再次启动您的应用程序以便它可以恢复更新."

  • 如果应用程序在前台,它肯定会发生.如果它处于后台模式,它可能永远不会被恢复 - 如下所述:http://stackoverflow.com/questions/17484352/iphone-gps-in-background-never-resumes-after-pause (4认同)
  • 当不再检测到activityType时,我看不到它们自动重新启动的任何地方。在文档中,我可以阅读:“暂停后,您有责任在确定需要定位服务时再次重新启动它” (2认同)