gpt4 book ai didi

swift 2.0 : Schedule background task to upload failed product uploads

转载 作者:可可西里 更新时间:2023-11-01 02:18:46 27 4
gpt4 key购买 nike

我正在开发一个将产品 (JSON) 上传到服务器的应用程序。现在,每个产品对象都包含许多图像。如果与该产品关联的所有图像都已上传,则该产品仅上传到服务器。如果产品的所有图片都没有上传,产品应该以“PENDING”状态存储在移动数据库中(我使用的是 Realm)。

我想要一个后台任务来定期(每 15 分钟)检查数据库中是否存在此类失败的产品上传,检查与该产品关联的所有图像现在是否已上传并将产品排队等待上传到服务器。

此后台任务将仅在应用程序运行时执行,否则不会执行。该任务应在启动时启动并在应用程序关闭时终止。

我找到了一些相关的解决方案(与 NSTimer 和 iOS 中的后台模式等相关),但没有直接解决我的问题。请指引我正确的方向!谢谢!

最佳答案

当您需要在应用程序未运行时执行后台任务时,后台模式很有用,这不是您想要的。 NSTimer 可以在这里完成一项工作,您需要在应用程序在应用程序委托(delegate)中激活后安排它,并在应用程序进入后台后立即失效。一个简单的示例可能如下所示:

var timer:NSTimer!

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.

timer = NSTimer.scheduledTimerWithTimeInterval(60 * 15, target: self, selector: "uploadData", userInfo: nil, repeats: true)

return true
}

func applicationDidEnterBackground(application: UIApplication) {
timer.invalidate()
}

func applicationWillEnterForeground(application: UIApplication) {
timer = NSTimer.scheduledTimerWithTimeInterval(60 * 15, target: self, selector: "uploadData", userInfo: nil, repeats: true)
}

func uploadData(){

// Query unsychronzied data and send them to server here
}

关于 swift 2.0 : Schedule background task to upload failed product uploads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33365216/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com