【问题标题】:Background task swift 3.0 iOS后台任务swift 3.0 iOS
【发布时间】:2016-11-01 22:29:39
【问题描述】:

当应用程序处于后台状态时,我需要执行一项任务。例如,当应用程序进入后台状态时,每 5 分钟(此时应用程序处于后台)执行一个任务。 我尝试更改位置但我无法使用精确位置(用于电池消耗)然后我使用了重要位置更改但如果用户不移动或不更改蜂窝塔位置不会更新。

你能帮帮我吗?

【问题讨论】:

标签: ios swift background location


【解决方案1】:

您可以使用 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 分钟向您的应用发送一个(静默)推送通知,您的应用可以对此做出反应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多