【问题标题】:App not suspending after long-running background task completes长时间运行的后台任务完成后应用程序未挂起
【发布时间】:2014-11-01 00:18:45
【问题描述】:

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

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

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

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

[[UIApplication sharedApplication] backgroundTimeRemaining]

确实,应用程序在结束任务后至少再挂起 20 秒。

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

【问题讨论】:

    标签: ios application-lifecycle uibackgroundtask


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多