基于此example application 这个Stackoverflow帖子:Periodic iOS background location updates,我设法创建了一个定期后台位置跟踪的工作实现。
一切都在设备上运行良好,我从Xcode安装应用程序,但对于我通过 crashlytics 发送应用程序的每个测试人员,应用程序仍然在后台超时。
是否必须对调试/发布模式或配置文件进行任何操作?
答案 0 :(得分:1)
您必须使用applicationDidEnterBackground方法在后台模式下获取更新位置。我从github下载了你的源码,在这里没有实现以下方法:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
你必须这样使用:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[self.shareModel.anotherLocationManager stopMonitoringSignificantLocationChanges];
if(IS_OS_8_OR_LATER) {
[self.shareModel.anotherLocationManager requestAlwaysAuthorization];
}
[self.shareModel.anotherLocationManager startMonitoringSignificantLocationChanges];
}
有关详细信息,请参阅链接: http://mobileoop.com/getting-location-updates-for-ios-7-and-8-when-the-app-is-killedterminatedsuspended
答案 1 :(得分:0)
您是否在Appdelegate中尝试过以下操作?
- (void)applicationWillResignActive:(UIApplication *)application
{
[locationManager startUpdatingLocation];
//`locationManager` is object of `CLLocationManager`
}
答案 2 :(得分:0)
您确定正确使用了后台位置权限吗?您是在iOS 7或iOS 8上进行测试/部署吗?有关详细信息,请查看此文章:http://nshipster.com/core-location-in-ios-8/