IOS 13 上的后台任务(BGTaskScheduler)

Sor*_*ica 8 ios swift xcode11

我将 BGTaskScheduler 用于后台任务,如下所述:https : //developer.apple.com/documentation/backgroundtasks/bgtaskscheduler

我的问题是:在设备重启后还是在我手动终止应用程序后,此计划任务是否也能工作?如果没有,是否还有其他选择?

Nay*_*ave 5

不会,重启设备或手动杀死应用程序后,不会执行后台任务或自动重新启动。

这是因为State你的应用程序的 将被更改

Apple DocsAppDelegate中给出了各种方法,它们处理不同的应用程序(ForeGround/BackGround/Terminated 等)States

  1. 如果您手动杀死您的应用程序,那么applicationWillTerminate(_ application: UIApplication)将在您的AppDelegate.swift文件中执行(因此,您可以设置一些要执行的操作,这些操作将在应用程序被手动杀死之前执行。)

请注意,当它执行时,您的任何后台任务也将终止,并且State您的应用程序的更改为BackGround->Terminated

  1. 当我们关闭或重新启动设备时,这是一个外部事件,与您的应用程序无关,因此我们无法确定State应用程序的

即使您的应用程序在后台并执行任何 BGTask ,如果设备将关闭,应用程序甚至不会执行applicationWillTerminate或任何AppDelegate方法