2011-08-09 44 views
-2

我正在寻找一种方法来让iPhone应用程序无限期地在后台运行。这个应用程序不会使用位置服务或VoIP,而是预先执行特定任务(抱歉,但我不能明确说明任务是什么)。该任务可以与检查文件是否存在然后睡眠1秒相媲美。为了这个问题的目的,任务应该永远运行。iPhone:无限期地在后台运行

任何帮助,将不胜感激。据我可以从iPhone文件告诉我所要求的是不可能的,所以我非常难倒...

+0

您是否希望应用程序在启动时自动启动? – GarlicFries

+0

@GarlicFries 在某些时候,是的。但为了这个问题的目的,我不需要它。 如果你知道如何随意阐述。 –

+0

你是否最终会就此向苹果公司(正如你所建议的答案中所建议的那样),如果是这样,结果如何? – newenglander

回答

1

您是对的 - 除非您在后台运行的原因符合Apple定义的类别之一(播放音频,voip等),否则您的应用将无法无限期地在背景。如果你想这么做的原因确实很有吸引力,那么你可能想和苹果谈谈让他们接受它。不过,期待一场漫长的艰苦战斗。更实用的方法是寻找可以达到相同效果的方法,例如在服务器上运行后台代码或从系统注册各种通知。

+0

你碰巧知道如何从苹果请求这样的事情? –

+0

我不认为苹果曾经这样做,否则将永远这样做。他们有一套严格的规则,我认为他们不会为一个应用程序而打破。此外,他们可能需要更新设备上的软件以支持这类任务。 –

+1

@JoshuaAbrams,通常要求一个功能,[提交bug](http://bugreport.apple.com)。如果您真的认为您的应用程序如此具有创新性和引人注目以至于苹果可能会考虑让您的应用程序在后台运行,那么您就需要更直接地与它们交谈。我首先联系Apple开发人员关系部门 - 您可以在开发人员网站上找到联系信息。但请记住,有数十万个已批准的应用程序,因此他们可能已经考虑了大多数使用情况。 – Caleb

0

这不能用当前的SDK完成。后台应用只能使用特定服务(音频,位置等)。

+0

假设我有另一个后台任务,无限期地使用蓝牙与其他设备通话。是否支持? –

+0

号只有音频,位置和voip任务。 –

0

这只能在越狱环境中完成。如果这不是您的选择,那么SDK目前不支持长期后台活动,除非用于音频,位置或voip目的。

0

正如已经讨论的,真正的后台处理将不可能满足您的要求。

但是,也许你可以利用背景通知来达到目的?

+0

您能否详细说明使用背景通知。这怎么能做到? –

+0

你必须告诉我们更多关于你想要达到的目标。 – ader

+0

假设我想检查一个文件是否存在,然后睡一秒钟;重复这个永远 –

0

一个令人失望的问题,但我仍然回答你提供的逻辑。尽管在应用商店审查过程中它不被接受。

while (your condition)

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

// do your desired task here 

[aPool release] }

称这种现象applicationDidEnterBackground和看到最新的仪器发生拿到背景的工作有很好的了解。

快乐编码!