我正在寻找一种方法让iPhone应用程序无限期地在后台运行。这个应用程序不会使用位置服务或VoIP,而是预先形成一个特定的任务(抱歉,但我无法明确说明任务是什么)。该任务可以与检查文件是否存在然后休眠1秒相当。出于这个问题的目的,任务应该永远运行。
任何帮助将不胜感激。据我所知,从iPhone文档中我要求的是不可能的,所以我很难过......
答案 0 :(得分:1)
你是对的 - 除非你在后台运行的原因符合Apple定义的类别之一(播放音频,voip等),你的应用程序将不允许在后台无限期运行。如果您想要这样做的原因非常引人注目,那么您可能希望与Apple讨论如何让它们允许它。不过,期待一场漫长的艰难战斗。更务实的方法是寻找可以达到相同效果的方法,例如在服务器上运行后台代码或注册来自系统的各种通知。
答案 1 :(得分:0)
目前的SDK无法做到这一点。后台应用程序只能使用特定服务(音频,位置等)。
答案 2 :(得分:0)
允许的多任务处理类型为audio
,location
和voip
,因此听起来您的任务可能无法在iOS上执行。
答案 3 :(得分:0)
这只能在越狱环境中完成。如果这不是您的选择,那么SDK目前不支持长期后台活动而不用于音频,位置或voip目的。
答案 4 :(得分:0)
如前所述,真正的后台处理将无法满足您的要求。
但是,也许你可以利用背景通知来达到目的?
答案 5 :(得分:0)
一个令人失望的问题,但我仍然在回答你提供的逻辑。虽然在应用商店审核过程中无法接受。
while (your condition)
{
NSAutoreleasePool *aPool = [[NSAutoreleasePool alloc ] init];
// do your desired task here
[aPool release]
}
在applicationDidEnterBackground
中调用此内容,查看仪器上发生的事情,以便充分了解后台工作情况。
快乐的编码!