当 iOS 应用程序处于挂起状态时如何处理重大位置变化?
How to handle SignificantLocation change when an iOS app is in suspended state?
在我的应用程序中,当用户位置发生重大变化时,我需要调用 API 服务。因此,我正在使用 startMonitoringSignificantLocationChanges 方法并在 corelocationdelegate 方法 (locationManagerdidUpdateLocations) 中处理 API 调用。当应用程序处于后台或活动状态时,我可以毫不犹豫地调用 API。
当应用程序处于挂起状态时出现问题。我知道什么时候触发 SignificantLocationChange iOS 唤醒终止的应用程序会提供少量时间来手动重启位置服务并处理位置数据,在这种情况下我们会回调委托方法,我是否需要使用后台任务调用 API 或 API 调用应该像以前一样进行(作为活动状态的情况)。目前 API 调用大约需要 6-7 秒。如果超过 10 秒,我该如何处理 API 调用?
还有一个问题,不调用stopMonitoringSignificantLocationChanges有什么问题吗?因为我的应用程序总是需要在用户位置发生重大位置变化时调用 API。
当您说“...我需要调用 API 服务...”时,您指的是对服务器进行网络调用吗?如果是这样,那么是的,你应该要求后台时间。
我好像记得你只有大约 30 秒的后台时间,网络调用可能会花费不可预测的时间。
您想进行调用 beginBackgroundTaskWithExpirationHandler
,然后在服务器调用完成后调用 endBackgroundTask
。
在我的应用程序中,当用户位置发生重大变化时,我需要调用 API 服务。因此,我正在使用 startMonitoringSignificantLocationChanges 方法并在 corelocationdelegate 方法 (locationManagerdidUpdateLocations) 中处理 API 调用。当应用程序处于后台或活动状态时,我可以毫不犹豫地调用 API。
当应用程序处于挂起状态时出现问题。我知道什么时候触发 SignificantLocationChange iOS 唤醒终止的应用程序会提供少量时间来手动重启位置服务并处理位置数据,在这种情况下我们会回调委托方法,我是否需要使用后台任务调用 API 或 API 调用应该像以前一样进行(作为活动状态的情况)。目前 API 调用大约需要 6-7 秒。如果超过 10 秒,我该如何处理 API 调用?
还有一个问题,不调用stopMonitoringSignificantLocationChanges有什么问题吗?因为我的应用程序总是需要在用户位置发生重大位置变化时调用 API。
当您说“...我需要调用 API 服务...”时,您指的是对服务器进行网络调用吗?如果是这样,那么是的,你应该要求后台时间。
我好像记得你只有大约 30 秒的后台时间,网络调用可能会花费不可预测的时间。
您想进行调用 beginBackgroundTaskWithExpirationHandler
,然后在服务器调用完成后调用 endBackgroundTask
。