后台任务有限制吗?

Is there a limit for background tasks?

如果我每隔几分钟定期调用 beginBackgroundTaskWithExpirationHandler 而从不调用 endBackgroundTask 会怎样?

创建后台任务是否有限制?

What happens if i call beginBackgroundTaskWithExpirationHandler periodically every minutes and never call endBackgroundTask

  • 没有任何反应。尽管名称如此,beginBackgroundTaskWithExpirationHandler: 实际上并不是 "begin" 一项任务。它可能更好地被认为是 "register..." 而不是 "begin...." 你只是告诉系统你正在做一些事情,如果可以的话,你想完成。

is there any limit for creating background task?

  • 没有。但是,应用 运行 宁后台任务有有限的时间来 运行 它们。 (您可以使用 backgroundTimeRemaining 属性 了解有多少时间可用。)如果您没有在时间到期之前为每个任务调用 endBackgroundTask:,系统将终止该应用程序。如果您在 handler 参数中提供一个块对象,系统会在时间到期之前调用您的处理程序,让您有机会结束任务。

This and this 是关于该主题的好读物。