我正在编写一个供个人使用的应用程序,需要持续执行背景。 Apple试图让这很难,但我发现声明我的应用程序使用后台位置更新然后创建后台任务(没有内容,只是一个空白任务)允许我的应用程序无限期地运行从Xcode运行项目。我不明白为什么会这样。我注意到大约三分钟后,当假定任务被终止时,我得到以下错误:
不能使用endBackgroundTask:不存在标识符为174256fe0的后台任务,或者它可能已经结束。中断UIApplicationEndBackgroundTaskError()以进行调试。
在此消息之后,应用程序继续正常在后台运行。因此,似乎这种无限期执行是一种利用,我很好,因为我只是想让应用程序工作。
然而,当我从手机上运行应用程序时(即没有按下我的Xcode项目中的运行按钮),后台执行似乎在3分钟后停止。这是一个问题,我似乎无法弄清楚为什么在一个案例中继续执行而在另一个案例中没有执行。正常运行应用程序和通过Xcode运行它有什么区别?有没有更简单或更好的方法来获得我无法查看的无限期背景,因为我没有尝试将此应用发布到应用商店?
答案 0 :(得分:1)
由于您未提交商店 - 为什么不试试这个:
为后台音频服务启用应用。那么,只是在一个恒定的循环中播放背景中的静音音频文件?
答案 1 :(得分:0)
不同之处在于您正在运行Xcode。通过调试器运行时,将删除正常的后台限制。