objective-c - 在 iOS 中运行后台服务

标签 objective-c ios background-process

我需要编写一个 iOS 应用程序,每 30 分钟向服务器发送一次数据。当应用程序处于后台时,这可以工作吗?它有多可靠?

最佳答案

无法按照您请求的时间间隔在后台永久执行任务。您可以通过开发人员连接请求特定许可,但我必须警告您,您将需要一个非常有说服力的论据。我在下面包含了文档,也许您的请求属于可以永久运行的组之一。或者,也许您可​​以使用其中一个长时间运行的后台线程,并以能够完成您正在尝试的任务的方式对其进行调整。

直接来自 Apple 的文档:

实现长时间运行的后台任务

对于需要更多执行时间才能执行的任务,您必须请求特定权限才能在后台运行它们而不会被挂起。在 iOS 中,只允许特定类型的应用程序在后台运行:

  • 在后台向用户播放音频内容的应用, 例如音乐播放器应用
  • 让用户了解他们的应用程序 随时定位,例如导航应用
  • 支持的应用 互联网协议(protocol)语音 (VoIP) 报亭应用需要 下载和处理新内容
  • 从外部配件接收定期更新的应用

实现这些服务的应用程序必须声明它们支持的服务并使用系统框架来实现这些服务的相关方面。声明服务让系统知道您使用了哪些服务,但在某些情况下,实际上是系统框架阻止了您的应用程序被挂起。

~/行尾

关于objective-c - 在 iOS 中运行后台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417837/

相关文章:

python - Bash 脚本未使用 nohup 在后台运行

objective-c - 1 个接口(interface)的 2 种不同实现(.h 文件)

ios - Objective-C设置bundle设置值

ios - UIViewController 没有自行解除分配

iphone - iOS - UIWebView 由于解析错误而无法正常工作

ios - 隐藏导航栏 ios swift 生命周期方法未调用导致问题

iphone - 如何像Notes App一样设置UITextView内容inset

使用exec函数的php后台进程

在某些情况下,带有推送通知和后台进程的 Android 应用程序会被终止

iphone - 如何为 iOS 创建像谷歌地图一样的用户卡片动画