我想定期制作一个应用程序,它会自动从用户定义的网站列表中下载一些数据,然后根据这些数据分析并显示历史图表和其他报告。iOS中的经常性后台任务
如果我在Windows中这样做,我会使用系统任务计划程序;如果我在Unix中,我会使用cron;如果我在Android中,我会使用服务。我想知道如何在iOS中执行此操作。
就我的研究而言,这在iOS中并不是微不足道的,因为没有公共接口来做这件事。然而,存在着一些变通方法来完成这件事:
拉历史数据,当应用程序被唤醒:不可能的,因为我不是数据的提供者,而大部分的数据提供者的,我会支持唐不存储或提供对历史数据的访问。
自己下载数据并让客户在唤醒时将其拉出:不可取。不仅如此,我还需要额外的昂贵基础设施(这意味着我的用户将收取我打算成为免费应用的费用),但也有一些内容提供商需要登录凭据。我宁愿不要求我的用户的登录信息来访问他们可以得到的信息。
如果时间戳已过期,当用户将应用程序置于前台时,保存上次更新的时间戳并下载数据:这不符合我的目的,因为数据可能(并且预计会)在时间。这个应用程序的全部目的是定期自动下载这些数据,以便所有历史数据在用户再次打开应用程序时可用。
使用本地通知:与以前几乎相同。它需要用户交互才能启动应用程序,并且应用程序的整个要点是即使在用户不使用该设备时也能获取该数据。
使用推送通知:因为这些只是需要用户交互才能唤醒应用程序的通知,所以它们不能用于与本地通知相同的原因。看起来你可以在应用程序唤醒后处理所有待处理的推送通知,但是我看过你不能为这些通知定义自定义字段。
使用后台任务:这在技术上似乎是所有选项中最有希望的,但是这仅适用于特定类型的应用程序。我认为“报亭应用程序”是最接近我可以得到的,它实际上是为了在后台下载数据。但是,正如它的名称,它意味着下载“杂志或报纸问题”。无论我想要做什么都可以归类为这完全取决于应用程序审阅者,我宁愿不制作可能会因技术性而被拒绝的应用程序。
所以,我的问题是:有没有其他方法可以做到这一点,我不知道?是否有任何应用程序已经做了类似的事情?
也许这[问题](http://stackoverflow.com/questions/6245763/ios-timed-background-processing)可能会有所帮助。 – esh 2013-02-14 07:37:30
@ BlackFlam3不是真的。他的要求可以通过许多不同的机制轻松满足。这个问题几乎没有我做的同样的问题。 – 2013-02-14 07:52:56