长时间运行后台任务完成后,应用程序不会挂起

时间:2014-11-01 00:18:45

标签: ios application-lifecycle uibackgroundtask

为什么我的应用程序在长时间运行的后台任务完成后没有立即暂停?

在iOS 8上运行的应用程序使用长时间运行的后台任务来避免在进入后台时被暂停。 一切都很好。任务完成后,应用程序将调用后台任务完成处理程序:

        [[UIApplication sharedApplication] endBackgroundTask:backgroundTask];
        backgroundTask = UIBackgroundTaskInvalid;

但是,对backgroundTimeRemaining的调用会返回40秒的时间间隔。

[[UIApplication sharedApplication] backgroundTimeRemaining]

事实上,在结束任务后,应用程序不会暂停至少20秒。

  • 为什么会这样?
  • 应用程序是否始终会收到完整的执行时间?
  • 我可以加速暂停应用吗?

1 个答案:

答案 0 :(得分:0)

在进一步调试之后,很明显在任务完成时不会立即更新backgroundTimeRemaining。该应用程序很快就会在运行循环旋转后暂停。您不应期望backgroundTimeRemaining始终准确无误。