在iOS中以后台模式运行任务

时间:2016-11-16 11:18:43

标签: ios swift background

我的应用程序应每天从网络下载一小段数据(或可配置的周/月/等)并将其保存到本地文件。这可能在iOS?是否可以在后台模式下运行应用程序,下载数据并停止它?

4 个答案:

答案 0 :(得分:3)

只有在您的应用启用了后台模式并且处于后台状态时,才有可能。当用户退出应用程序并且垃圾收集器不会因为内存使用而终止它时,就会达到后台状态。

如果你的目标是每天/每周/每月下载一些内容,即使用户没有使用应用,那么在iOS上也是如此。

答案 1 :(得分:1)

虽然你可以在后台模式下运行任务,但是有一些缺点:

  1. 您只能控制抓取之间的最短时间,但不能强制它在准确时间内发生(仍然可以,但您需要推送服务),这取决于您的用户使用该应用程序的数量
  2. 如果您的应用被杀,则不会运行后台提取
  3. 运行该任务有时间限制,因为我知道最大值是10分钟(?)
  4. This教程很适合你入门

答案 2 :(得分:1)

只有为此网址记录的任务注册的应用:Background Execution才允许在后台运行。与其他支持背景服务概念的Android系统相比,iOS采用了不同的方法。这个想法是在后台运行的应用程序耗尽电池,这就是为什么Apple不喜欢这个想法的原因

答案 3 :(得分:0)

只是一个快速的,因为你每天只做一个小任务,为什么不使用firebase?并有一个主要话题,告诉每个人在一天的特定时间检查一些东西?

但有一点,您需要在请求的时间添加一些随机数 - 或者您的每个用户立即点击您的服务器并导致电气火灾。另一种方法是让您为区域或用户类型管理主题,或以其他方式分割用户组。

我是Android开发人员,我会使用同步适配器来完成此类操作,但也可以使用AlarmManager,您可以在其中安排基本执行更新的定期警报。

这种方式与用户端的更新周期(从安装点每X小时)而不是服务器有关。你甚至可以让他们自己设置这个 - 但是idk如何在swift上工作或者你可以,只是插入Android ofc,但必须有一个类似的快速的东西,除非它被操作系统锁定