我试图在后台运行一些服务,所以我通过while(1)
在后台委托中使用循环一段时间来在后台控制。在模拟器上它工作正常,但在将其传输到我的 iPad 时,应用程序在进入后台后崩溃。
while(1)
循环在设备上不起作用吗?
我试图在后台运行一些服务,所以我通过while(1)
在后台委托中使用循环一段时间来在后台控制。在模拟器上它工作正常,但在将其传输到我的 iPad 时,应用程序在进入后台后崩溃。
while(1)
循环在设备上不起作用吗?
在模拟器上它工作正常,但在将其传输到 Ipad 设备时,应用程序在进入后台后崩溃。
如果我正确解释了您正在编写的内容,我认为您的应用程序在 iOS 设备上被杀死只是因为除了少数备用情况外,当应用程序“在后台”时,您不允许在您的应用程序中运行线程"(即,在用户通过单击主页按钮“退出”它之后)。
所以,如果我在阅读正在发生的事情时是正确的,要么您的应用程序属于特定的应用程序类别(见下文),要么您唯一能做的就是“注册”一个后台线程以在有限的时间内运行应用程序进入后台后。
后台执行和多任务处理的摘录
大多数应用程序在进入后台后不久就会进入暂停状态。只有向用户提供重要服务的应用程序才能继续运行任意时间。
鼓励您尽可能避免在后台执行并让您的应用程序暂停。如果您发现需要执行后台任务,以下是一些合适的指导原则:
您需要至少实现几种特定用户服务中的一种。
您需要执行一个有限长度的任务。
您可能对“实现长时间运行的后台任务”特别感兴趣:
对于需要更多执行时间来实现的任务,您必须请求特定权限才能在后台运行它们而不会被挂起。在 iOS 中,只允许特定类型的应用程序在后台运行:
在后台向用户播放有声内容的应用程序,例如音乐播放器应用程序
让用户随时了解其位置的应用程序,例如导航应用程序
支持互联网协议语音 (VoIP) 的应用程序
需要下载和处理新内容的报亭应用
从外部配件接收定期更新的应用程序