我想在iOS8上应用程序处于后台模式时运行定期任务。我用swift编写了下面的代码,但是失败了。有人能指出哪里不对劲吗?
这是我的AppDelegate.swift代码
let backgroundQueue = dispatch_get_global_queue(QOS_CLASS_BACKGROUND,0)
func applicationDidEnterBackground(application: UIApplication) {
println("did enter background")
dispatch_async(self.backgroundQueue, myBackgroundTask)
}
func myBackgroundTask() {
NSThread.sleepForTimeInterval(0.5)
println("this is back ground task")
dispatch_async(self.backgroundQueue, myBackgroundTask)
}
最佳答案
有人告诉我叫“beginBackgroundTaskWithName”就是答案。
func applicationDidEnterBackground(application: UIApplication) {
println("did enter background")
application.beginBackgroundTaskWithName("myBgTask", expirationHandler: nil)
dispatch_async(self.backgroundQueue, myBackgroundTask)
}
func myBackgroundTask() {
NSThread.sleepForTimeInterval(0.5)
println("this is back ground task")
dispatch_async(self.backgroundQueue, myBackgroundTask)
}
关于swift - 在iOS8上以后台模式运行定期任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27338027/