我正在开发一款iPhone应用程序,它可以从车辆中收集大量数据,然后将其上传到远程服务器。该应用程序将位于车辆中,连接到其电池以获取电源,并在其生命周期的大部分时间内不需要太多用户交互即可收集数据。因此,重要的是这些上传操作要在后台进行,并且系统会唤醒应用程序执行上传操作。由于这是一款企业应用程序,因此无需经过苹果的审核。
考虑到这些要求,我认为苹果的新iOS 7后台获取API是解决我的问题的好方法。当然,由于我并没有完全按照预期使用它,因此有些事情可能会对我造成一些问题,我需要一些澄清。
以下是我的问题:
1.我观看了有关新API的WWDC视频,了解到iOS将尝试识别应用程序的使用模式,并在使用前将其唤醒。如果很少打开应用程序,那么最终会导致其停止进行这些后台更新吗?
2.当我使用此API时,我会得到一个完成处理程序块,其中会将UIBackgroundFetchResult作为参数。如果我每次都传递UIBackgroundFetchResultFailed,那么iOS是否会认为我仍然需要新数据并继续唤醒应用程序?
3.最后,由于我明显使用此API的方式与预期不同,是否有人可以推荐更好的方法来满足我的要求?
考虑到这些要求,我认为苹果的新iOS 7后台获取API是解决我的问题的好方法。当然,由于我并没有完全按照预期使用它,因此有些事情可能会对我造成一些问题,我需要一些澄清。
以下是我的问题:
1.我观看了有关新API的WWDC视频,了解到iOS将尝试识别应用程序的使用模式,并在使用前将其唤醒。如果很少打开应用程序,那么最终会导致其停止进行这些后台更新吗?
2.当我使用此API时,我会得到一个完成处理程序块,其中会将UIBackgroundFetchResult作为参数。如果我每次都传递UIBackgroundFetchResultFailed,那么iOS是否会认为我仍然需要新数据并继续唤醒应用程序?
3.最后,由于我明显使用此API的方式与预期不同,是否有人可以推荐更好的方法来满足我的要求?
UIBackgroundFetchResultFailed
。如果你正在进行上传,并且它们成功完成,我更喜欢传递UIBackgroundFetchResultNewData
。这是我从讲话中推断出来的,但我仍在寻找支持这一点的文档... - JRG-Developer