如何使用特定的时间间隔在后台调用Web服务?

时间:2014-06-11 09:42:23

标签: ios iphone web-services background

我知道这些问题可能会重复一些,但我需要一些澄清,所以我在这里问。

我的要求是我每20秒就使用一次iPhone获取位置并使用网络服务更新我的Web应用程序。它还在开发背景。

我知道我将使用后台获取在后台获取位置,但我在这里有点混淆。我想使用Web服务每20秒更新一次我的Web数据库。 是否可以在应用程序后台模式下使用Web服务每20秒更新一次Web数据库?

提前致谢。

2 个答案:

答案 0 :(得分:0)

没有。当您的应用在后台模式中“醒来”时,最小时间间隔为6-10分钟。 如果您的手机处于活动状态并已解锁。如果您的手机处于“睡眠状态”,则此间隔可能需要几个小时。

  1. 在您的项目中 - >功能 - >后台模式启用“后台获取”

  2. 在您的appDelegate

    -(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
    {
      //Add your code here You will have 30 sec. to do all that you want in background mode
    
       completionHandler(UIBackgroundFetchResultNewData);       }
    

答案 1 :(得分:0)

尝试使用NSURLSession使用其任务,您可以进行后台上传和下载。
在第一个请求完成启动计时器后,启动第二个请求。

NSURLSession的好教程就在这里..

tutsplus(其4部分教程)
Here

然后查看NSURLSession文档here ..

在iOS7 +中受支持。但是如果用户强制关闭应用程序,它将被停止。