我的应用程序崩溃是因为自动锁定设置时间为2分钟,而我的网络服务时间超过2分钟。 如果时间超过2分钟,那么我的应用程序每次都会崩溃。
但我不想将自动锁定时间设置为15分钟或从不设置。 我想在应用程序中使用一些解决方案而不更改设置值。
如果有人知道避免崩溃的解决方案,请告诉我。
谢谢你。
答案 0 :(得分:3)
您可以暂时关闭自动锁定,直到请求完成为止,即[UIApplication sharedApplication].idleTimerDisabled
设置为YES
。
另一个选项是将您的Web服务请求设置为finite-length task running in background,因此即使您的设备进入休眠状态,该请求也会继续运行。请注意10分钟的时间限制。
无论哪种方式,当在前台运行时,请确保请求是异步完成的,并且不会阻止主线程,否则您的应用程序将在执行该操作太长时间后总是被杀死。
答案 1 :(得分:1)
如何检测您的应用何时进入后台/不活动
- (void)applicationWillResignActive:(UIApplication *)application
并使用任务完成机制 - 看一下这个问题:How to implement Task completion
作为附注,完成后台任务有10分钟的限制(你收到警告) - 否则你的应用程序将被终止。
您是否考虑将数据拆分为较小的块并跟踪进度?