后台任务swift 3.0 iOS

时间:2016-11-01 22:29:39

标签: ios swift background location

我需要在应用处于后台状态时执行任务。例如,当应用程序进入后台状态时,则每隔5分钟(应用程序在此时间处于后台)执行任务。 我尝试改变位置,但我不能使用精确的位置(电池消耗),然后我使用了显着的位置更改,但如果用户没有移动或没有更改单元塔位置没有更新。

你能帮我解决一下吗?

1 个答案:

答案 0 :(得分:0)

Yo可以使用iOS背景提取功能,您可以在其中指定最小背景提取间隔。但是,连续调用代码之间的实际间隔将由iOS框架确定。

func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

    let data: String? = nil

    do {
        //fetch some data
        if let data = getSomeNewData() {
            /* use the completionHandler to talk to the system and tell us if the app fetched new data, or if no data was available. */
            completionHandler(.newData)
        } else {
            completionHandler(.noData)
        }
    }  catch {
        print(error)
        completionHandler(.failed)
    }

}

另见问题:swift-ios-refreshing-app-data-when-in-background

另一种选择是设置一个服务器,该服务器每隔5分钟就会向您的应用发送一个(静音)推送通知,您的应用可以做出反应。