【问题标题】:How to call web services in background using specific time interval?如何使用特定的时间间隔在后台调用 Web 服务?
【发布时间】:2014-06-11 09:42:22
【问题描述】:

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

我的要求是我每 20 秒使用我的 iPhone 获得一次位置,并使用网络服务更新我的网络应用程序。它也在后台工作。

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

提前致谢。

【问题讨论】:

    标签: ios iphone web-services background


    【解决方案1】:

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

    NSURLSession 的好教程在这里..

    tutsplus(它的 4 部分教程)
    Here

    并检查NSURLSession 文档here..

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

    【讨论】:

      【解决方案2】:

      没有。您的应用在后台模式下“唤醒”的最小间隔为 6-10 分钟。 如果您的手机处于活动状态且已解锁。如果您的手机处于“休眠”状态,则此间隔可能是几个小时。

      1. 在您的项目中 ->capabilities->后台模式打开“后台获取”

      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);       }
        

      【讨论】:

      • 这意味着我没有在后台模式下更新数据库。ryt?只有在活动模式下才有可能。
      • 您无法保证更新之间的时间间隔。例如,我创建了简单的复制,它在后台运行并在推特上发布我的 iPhone 电池电量。 twits之间的时间间隔非常不同。你可以在这里看到它。 twitter.com/iphbatterryyy
      • ,感谢您的重播。无论时间间隔是否准确。但我想在后台模式下调用 Web 服务。我可以在后台调用 Web 服务吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多