我是一名 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 一起使用,但是当我尝试实现它时我被卡住了。