在iOS 8的后台永远运行一个应用程序

这个话题有几个线程,什么都不适合我。 我不需要在应用程序商店部署应用程序,所以我可以在应用程序中做黑客来保持运行。 任何方式我可以保持应用程序即使它是背景时, 任何指针赞赏。

我发现这个github项目解决了这个问题: https : //github.com/voyage11/Location显然苹果不会批准这个黑客,但我想它会适用于你的情况。

基本上你所要做的是:

  • 使用info.plist中的位置背景模式function
  • 总是有后台任务运行,但不要让它运行超过一分钟。 每分钟创build一个新的后台任务,并停止旧的任务。
  • 除了以前的任务滚动之外,还要保持长时间运行的后台任务。 如果真的需要,我不确定。
  • 每分钟启动一次位置pipe理器并请求全部授权。

引用代码中的一些重要代码片段:

后台任务:

bgTaskId = [application beginBackgroundTaskWithExpirationHandler:^{ [self.service debugLog:[NSString stringWithFormat:@"BG....background task %lu expired", (unsigned long)bgTaskId]]; }]; 

并启动位置pipe理器:

 if(IS_OS_8_OR_LATER) { [_locationManager requestAlwaysAuthorization]; } [_locationManager startUpdatingLocation];