gpt4 book ai didi

ios - MKDirections 计算ETAWithCompletionHandler : in background state

转载 作者:可可西里 更新时间:2023-11-01 05:43:51 27 4
gpt4 key购买 nike

我有一个应用程序可以监控重要的位置变化。
收到新的计算后,我想计算从当前位置到指定位置的持续时间。
为了计算持续时间,我使用 MKDirections 类中的 calculateETAWithCompletionHandler:
只要应用程序在前台,一切都会按预期工作。

当我将应用程序发送到后台时,它会在后台正确接收位置更新并且一切正常,直到我调用 calculateETAWithCompletionHandler:,它永远不会返回结果。

MKDirectionsHandlercalculateETAWithCompletionHandler: 的完成处理程序。在后台时永远不会被调用。

一旦应用程序再次进入前台,所有等待完成的处理程序都会收到结果。

MKMapItem* origin = [MKMapItem mapItemForCurrentLocation];
MKMapItem* destination = [[MKMapItem alloc] initWithPlacemark:destinationPlacemark];

MKDirectionsRequest* request = [MKDirectionsRequest new];
[request setSource:origin];
[request setDestination:destination];
[request setTransportType:MKDirectionsTransportTypeAutomobile];

MKDirections* directions = [[MKDirections alloc] initWithRequest:request];

[directions calculateETAWithCompletionHandler:^(MKETAResponse *response, NSError *error) {
completion(response.expectedTravelTime, error);
}];

是否不允许在后台调用calculateETAWithCompletionHandler:
有什么办法可以解决这个问题吗?

最佳答案

我相信您使用 MKMapItem 的方式有问题,您需要在主线程上运行它。所以我认为它不会满足你的需要。在后台收集位置时,您应该改用 CoreLocation。

关于ios - MKDirections 计算ETAWithCompletionHandler : in background state,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30413513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com