-2

我试图在后台运行一些服务,所以我通过while(1)在后台委托中使用循环一段时间来在后台控制。在模拟器上它工作正常,但在将其传输到我的 iPad 时,应用程序在进入后台后崩溃。

while(1)循环在设备上不起作用吗?

4

1 回答 1

0

在模拟器上它工作正常,但在将其传输到 Ipad 设备时,应用程序在进入后台后崩溃。

如果我正确解释了您正在编写的内容,我认为您的应用程序在 iOS 设备上被杀死只是因为除了少数备用情况外,当应用程序“在后台”时,您不允许在您的应用程序中运行线程"(即,在用户通过单击主页按钮“退出”它之后)。

所以,如果我在阅读正在发生的事情时是正确的,要么您的应用程序属于特定的应用程序类别(见下文),要么您唯一能做的就是“注册”一个后台线程以在有限的时间内运行应用程序进入后台后。

后台执行和多任务处理的摘录

大多数应用程序在进入后台后不久就会进入暂停状态。只有向用户提供重要服务的应用程序才能继续运行任意时间。

鼓励您尽可能避免在后台执行并让您的应用程序暂停。如果您发现需要执行后台任务,以下是一些合适的指导原则:

您需要至少实现几种特定用户服务中的一种。

您需要执行一个有限长度的任务。

您可能对“实现长时间运行的后台任务”特别感兴趣:

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

在后台向用户播放有声内容的应用程序,例如音乐播放器应用程序

让用户随时了解其位置的应用程序,例如导航应用程序

支持互联网协议语音 (VoIP) 的应用程序

需要下载和处理新内容的报亭应用

从外部配件接收定期更新的应用程序

于 2012-08-06T05:57:31.347 回答