Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.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
iPhone:在后台无限期运行_Iphone_Multithreading_Background_Multitasking - Fatal编程技术网

iPhone:在后台无限期运行

iPhone:在后台无限期运行,iphone,multithreading,background,multitasking,Iphone,Multithreading,Background,Multitasking,我正在寻找一种让iPhone应用程序在后台无限期运行的方法。此应用程序将不使用位置服务或VoIP,而是执行特定任务(抱歉,我无法明确说明任务是什么)。该任务类似于检查文件是否存在,然后休眠1秒。就这个问题而言,任务应该永远运行 任何帮助都将不胜感激。据我从iPhone文档中所知,我所请求的是不可能的,因此我相当困惑…这在当前SDK中无法实现。后台应用程序只能使用特定的服务(音频、位置等)。这里介绍了iOS上的多任务处理 允许的多任务处理类型有音频、位置、和voip,因此听起来你的任务在iOS上可

我正在寻找一种让iPhone应用程序在后台无限期运行的方法。此应用程序将不使用位置服务或VoIP,而是执行特定任务(抱歉,我无法明确说明任务是什么)。该任务类似于检查文件是否存在,然后休眠1秒。就这个问题而言,任务应该永远运行


任何帮助都将不胜感激。据我从iPhone文档中所知,我所请求的是不可能的,因此我相当困惑…

这在当前SDK中无法实现。后台应用程序只能使用特定的服务(音频、位置等)。

这里介绍了iOS上的多任务处理


允许的多任务处理类型有
音频
位置
、和
voip
,因此听起来你的任务在iOS上可能不可能完成。

你是对的——除非你在后台运行的原因符合苹果定义的类别之一(播放音频、voip等),您的应用程序将不允许在后台无限期运行。如果你想这么做的原因真的很有说服力,你可能想和苹果谈谈,让他们允许你这么做。不过,我们期待着一场漫长的艰苦战斗。更实用的方法是寻找实现相同效果的方法,例如在服务器上运行背景代码或注册系统中的各种通知。

这只能在越狱环境中完成。如果这不是您的选择,则SDK当前不支持长期后台活动,而不支持音频、定位或voip用途。

如前所述,真实的后台处理将无法满足您的要求


然而,也许你可以利用后台通知来达到你的目的?

这是一个令人失望的问题,但我还是要回答你,因为我只是提供了逻辑。虽然在应用商店审查过程中不可接受

while(您的情况)

{
NSAutoreleasePool*aPool=[[NSAutoreleasePool alloc]init];

  // do your desired task here
[aPool发布]
}

applicationIdentinterbackground
中调用此命令,查看仪器上发生的情况,以充分了解后台工作


快乐编码

你想让应用程序在启动时自动启动吗?@GarlicFries,是的。但就这个问题而言,我并不需要它。如果你知道如何进行详细阐述。你最终是否就此事(如你建议的答案中所建议的)去了苹果公司,如果是,结果如何?假设我有另一项背景任务,那就是无限期地使用蓝牙与另一台设备通话。支持吗?不支持。只支持音频、定位和voip任务。你知道如何向苹果请求类似的任务吗?我认为苹果从来没有这样做过,也不会这样做。他们有一套严格的规则,我认为他们不会因为一个应用程序而违反。此外,他们可能需要更新设备上的软件以支持此类任务。@JoshuaAbrams,一般来说,请求一项功能。如果你真的认为你的应用程序是如此的创新和令人信服的,苹果可能会考虑让你的应用程序在后台运行,你会想更直接地与他们交谈。我先联系苹果开发者关系部——你可以在开发者网站上找到联系信息。不过,请记住,有几十万个经批准的应用程序,因此他们可能已经考虑了大多数用例。请详细说明后台通知的使用。如何做到这一点?您必须告诉我们更多关于您试图实现的目标的信息;重复这句话我不会,但它与我需要做的事情非常相似,所以我把它作为一个例子。除非你说出你想要实现的目标和原因,否则我看不出有人能帮上什么忙。