当应用程序处于后台状态时,我必须每30秒命中一次服务器。如果我已经在applicationDidEnterBackground方法中编写了代码,它只会被调用一次,但是我需要在应用程序处于后台状态时每30秒连续命中一次服务器。
答案 0 :(得分:1)
请根据需要使用HSLocationManager。我在一个项目中达到了相同的要求:Capchur
位置管理器,可让每个位置获取后台位置更新 n秒,并具有所需的定位精度。
优势:
如果位置管理器当前处于运行状态,则操作系统将永远不会杀死我们的应用程序 正在运行。
在需要时定期提供位置更新(范围介于2- 170秒(受允许的最大后台任务时间限制)
可自定义的位置准确性和时间段。
低内存消耗(Singleton类)
默认位置检索时间为30秒,准确性为200。
static let timeInternal = 30
static let accuracy = 200
是的,您可以通过在didUpdateLocations
方法中编写API调用来实现。
func scheduledLocationManager(_ manager: HSLocationManager, didUpdateLocations locations: [CLLocation]) {
logh("Make API Call here...")
}