如何在 iOS 应用程序中每 n 分钟获取一次后台位置更新?

Posted

技术标签:

【中文标题】如何在 iOS 应用程序中每 n 分钟获取一次后台位置更新?【英文标题】:How do I get a background location update every n minutes in iOS app? 【发布时间】:2011-12-02 11:41:54 【问题描述】:

我很感激这个问题似乎已经在这里得到了回答: How do I get a background location update every n minutes in my ios application?

但是,尽管暗示了解决方案,但如果有人可以发布一些示例代码来说明其实际工作原理,我将不胜感激。

非常感谢,

杰克

【问题讨论】:

@wjans - 你能在这里帮助你最终使用的代码吗?非常感谢! 这个问题你解决了吗? 这个任务你完成了吗??请分享信息!我会很感激的 【参考方案1】:

您需要在应用程序启动期间订阅核心位置。

类似的东西

CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;

并添加委托

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

【讨论】:

对不起,我应该说。我已经把这个排序的主要部分。我设置了一个按钮,当按下该按钮时,它会获取当前位置并将发布请求传递给服务器。我想要的是,当应用程序在后台时,每 30 分钟自动发生一次。 即使应用在后台,也会调用核心位置委托。 感谢您的帮助。这可行,但问题是我希望更新相距甚远(例如每小时一次),这会消耗大量电池寿命。有没有办法触发位置管理器,然后每隔很长时间再次停止它。【参考方案2】:

试试这个,你会得到更新的纬度和经度..in didUpdateToLocation...

//in view did load 

locationManager = [[CLLocationManager alloc]init];
    if([CLLocationManager locationServicesEnabled])
    
        locationManager.delegate = self;
        locationManager.desiredAccuracy  = kCLLocationAccuracyKilometer;
        locationManager.distanceFilter = 1000.0f;
        [locationManager startUpdatingLocation];
        


- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
appDelegateObj.latitude= [[NSString alloc]initWithFormat:@"%g",newLocation.coordinate.latitude];
    appDelegateObj.longitude = [[NSString alloc]initWithFormat:@"%g",newLocation.coordinate.longitude];
  

【讨论】:

只是发表与上述相同的评论。感谢您的帮助: 对不起,我应该说的。我已经整理了这个的主要部分。我设置了一个按钮,当按下该按钮时,它会获取当前位置并将发布请求传递给服务器。我想要的是,当应用程序在后台时,每 30 分钟自动发生一次。 这样您就可以添加按钮并在按钮按下时调用此调用线程 30 分钟。所以每 30 分钟线程将调用它自己的操作并将此方法添加到线程操作中,因此它将每 30 分钟调用一次..

以上是关于如何在 iOS 应用程序中每 n 分钟获取一次后台位置更新?的主要内容,如果未能解决你的问题,请参考以下文章

在android中每n分钟获取当前位置

在 iOS 应用程序中安排每 n 分钟运行一次的后台任务

如何在ios中每n秒连续在后台线程中运行一个进程

在Swift 2.0中每隔n分钟更新一次背景中的位置

需要在android中每分钟运行一个后台任务

应用程序在后台时如何每n分钟调用一次方法?