c与beginBackgroundTaskWithExpirat

c与beginBackgroundTaskWithExpirat

我需要在iOS应用程序中实现一个后台进程,该进程每60秒执行一次工作。我知道只能在应用程序处于焦点状态时才能完成此操作,但是我确实希望这项工作在应用程序关闭后能够在后台完成运行。我将使用GCD调度一个计时器,该计时器每隔60秒使用dispatch_asyncbeginBackgroundTaskWithExpirationHandler异步调用我的工作。

我想知道哪种方法最好,或者本质上是相同的。即使应用程序在前台,也可以使用beginBackgroundTaskWithExpirationHandler执行作业吗?还是我最好在应用程序状态更改时尝试取消作业,然后将其作为后台任务重新启动?

最佳答案

-beginBackgroundTaskWithExpirationHandler:不在后台线程/队列上运行代码。它告诉操作系统您将在应用程序不 Activity 时继续进行工作。

两者的目的完全不同。

关于objective-c - dispatch_async与beginBackgroundTaskWithExpirationHandler,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13016822/

10-10 21:03