Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
而(1)循环在IOS后台不工作_Ios - Fatal编程技术网

而(1)循环在IOS后台不工作

而(1)循环在IOS后台不工作,ios,Ios,我试图在后台运行一些服务,因此我在后台使用while(1)循环在后台委托中运行了一段时间,从而触发了控件。 在模拟器上,它工作正常,但在将其传输到我的iPad上时,该应用程序在进入后台后崩溃 while(1)循环在设备上是否不起作用 在emulator上,它工作正常,但在将其传输到Ipad设备时,该应用程序在进入后台后会崩溃 如果我正确地解释了您正在编写的内容,那么我认为您的应用程序在iOS设备上被杀死的原因很简单,因为当应用程序处于“后台”状态时(即,用户通过单击“主页”按钮“退出”应用程序)

我试图在后台运行一些服务,因此我在后台使用
while(1)
循环在后台委托中运行了一段时间,从而触发了控件。 在模拟器上,它工作正常,但在将其传输到我的iPad上时,该应用程序在进入后台后崩溃

while(1)
循环在设备上是否不起作用

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

如果我正确地解释了您正在编写的内容,那么我认为您的应用程序在iOS设备上被杀死的原因很简单,因为当应用程序处于“后台”状态时(即,用户通过单击“主页”按钮“退出”应用程序),您不允许在应用程序中运行线程,只有在少数备用情况下除外

因此,如果我对正在发生的事情的理解是正确的,那么要么你的应用程序属于特定的 应用程序(见下文),或者你唯一能做的就是“注册”一个后台线程,在应用程序进入后台后运行一段有限的时间

摘自

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

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

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

您需要执行单个有限长度任务

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

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

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

随时通知用户其位置的应用程序,如导航应用程序

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

需要下载和处理新内容的报摊应用程序

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


我希望你的“
while(1)
”循环在一个单独的线程中,否则你会挂起你的UI(&你的应用程序)。让我们看看你的循环是什么样子的代码。正如Michael所说,代码真的会很有帮助。另外,更多地了解你正在做什么以及你正在努力实现什么也会有所帮助。