2014-04-25 111 views
-2

这个问题可能与其他许多问题重复,但我仍然在问,因为我真的需要得到它的任何解决方案。让iOS应用程序永远在后台运行

对于iOS之前的版本6,对于那些具有A7芯片的设备。

我有一个与Accelerometer交互的应用程序。我也通过播放声音文件并将音频服务设置为开启以用于后台任务来在后台运行它。

现在,如果任何第三个应用程序播放音乐,它将控制设备的共享音频会话,这会导致我的后台线程调用完成处理程序,假定后台任务已完成。

现在我的应用程序可以被iOS和iOS中断,如果它在很长一段时间后仍然保留在后台,我无法与加速度计进行交互。

是否有任何方法/技巧/破解让我的应用程序一直运行,除非我自己杀了它。

同样,这是一个重复的问题,但我真的很想与您分享我的问题,以帮助我解决这个问题。

+0

因为我知道我们不能永远这样做。背景应用程序运行是我在iOS中面临的最困难和最不稳定的概念。 – Tendulkar

+0

根据[Apple](https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072- CH4-SW20) – Yogi

回答

1

Apple is very clear on this

实现长时间运行的后台任务

对于需要更多的执行时间来实现的任务,你必须 请求特定的权限在后台运行它们,而不 他们被暂停。在iOS中,只有特定的应用程序类型允许 在后台运行:

应用程式播放音频内容给用户,而在后台, 如音乐播放器应用程序

应用该记录的音频内容,而在背景中。支持互联网语音协议(VoIP)

应用程序需要下载,并定期处理新的内容

应用程序,使用户在任何时候他们的位置的通知,如 导航应用

应用

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

收集加速度计数据不上市。因此,你试图做的事情是不可能的。 “方式,技巧,黑客”往往会很快被发现,并冒犯从App Store中移除的应用程序。

+0

谢谢你的回答。我还有一个小问题,就是在这方面扩大谈话范围。 iOS在一些分钟后杀死应用程序,对于我的情况它几乎大于3分钟,它杀死了我的应用程序和后台任务完成处理程序调用。现在,如果我在完成处理程序中再次调用相同的Background函数,该怎么办? –