我正在构建适用于iOS 8和iOS的iOS应用程序。 9,我面临的问题是,当应用程序进入后台时,系统会在2或3分钟后终止它。
我的测试很简单:
一些意见:
我的问题是:你知道为什么会这样吗?我可能不会考虑或忘记的任何事情?
我不想通过使用CoreLocation或类似的方法强制我的应用在后台运行。如果系统最终杀死我的应用程序,我还可以。我不想要的是,每当我将我的应用程序移动到后台时,系统都会终止它。
任何提示或帮助都将受到赞赏。
谢谢,
答案 0 :(得分:0)
所有应用程序都会被系统自动杀死
根据Apple文档:
应用程序终止
应用程序必须准备好在任何时间终止,并且不应该等待保存用户数据或执行其他关键任务。系统启动的>终止是应用程序生命周期的正常部分。系统通常>终止应用程序,以便它可以回收存储器并为用户启动的其他应用程序腾出空间,但系统也可以终止>行为不当或未及时响应事件的应用程序。 / p>
暂停的应用在终止时不会收到通知; >系统终止进程并回收相应的内存。如果某个应用>当前正在后台运行而未暂停,则系统会在终止之前调用其应用代理的> applicationWillTerminate :. >设备重启时系统不会调用此方法。
除了系统终止您的应用外,用户还可以使用多任务UI明确终止>您的应用。用户启动的终止>与终止暂停的应用具有相同的效果。该应用程序的进程已被杀死,并且未向该应用程序发送任何通知。
您可以跟踪位置,但您肯定会看到一个蓝色状态栏,表示某个应用程序使用GPS跟踪。
也许您可以尝试使用无声通知在后台“唤醒”您的应用...
如果没有必要保持您的应用程序存活,请相信系统...
答案 1 :(得分:0)
代码内部出现一些错误。请在运行您的应用程序之前选择debug Navigator ...现在您可以找到错误..
或者太多记忆也会终止..
答案 2 :(得分:-1)
在后台运行的应用程序会延长电池续航时间,它让您对设备感觉不好,而不是应用程序,因为普通消费者不知道这是一款耗尽电池的应用程序。 因此iOS不允许您的应用在后台运行超过几秒钟。但是有一些例外,应用可以通过声明它启动后台任务来请求扩展。
有关详细信息,请查看以下链接: http://blog.dkaminsky.info/2013/01/27/keep-your-ios-app-running-in-background-forever/
http://www.speirs.org/blog/2012/1/2/misconceptions-about-ios-multitasking.html