0

我是一名 iOS 开发人员,我开发了一个使用后台模式运行定期后台任务的应用程序,我想在这个应用程序的 MacOS 版本中实现相同的功能,因为我是 MacOS 开发的新手,我面临一些问题关于此功能的实现。

我已经使用 NSBackgroundActivityScheduler 来安排定期活动,当应用程序正在运行或在 Dock 中时,它工作正常。但是当我退出应用程序时,我未能达到相同的结果。即使在应用程序终止或退出后,我也想运行该任务。

func startBackgroundTask() {

  let activity =  NSBackgroundActivityScheduler.init(identifier:"com.abc.xyz")
  activity.invalidate()
  activity.interval = 60
  activity.repeats = true
  activity.qualityOfService = QualityOfService.background
  activity.schedule() {(completion: NSBackgroundActivityScheduler.CompletionHandler) in

  print("background task scheduled")

  // Perform the activity
  NotificationManager.sharedManager().showNotification(informativeText: "Next notification will come after 1 minute") //This is to find notify the background service started.

  //perform operation over here...

  completion(NSBackgroundActivityScheduler.Result.finished)
}

我研究了有关此的各种选项,例如 XPC 、 LaunchAgent 、 LoginItems 、 Process 等,但我很困惑该选择哪个选项。就像在苹果开发者论坛上一样,他们已经将 XPC 与 LoginItems 一起使用,但是当我尝试实现它时我被卡住了。

4

0 回答 0