gpt4 book ai didi

swift - BackgroundTask iOS 13 Swift 与场景

转载 作者:行者123 更新时间:2023-12-01 02:03:51 25 4
gpt4 key购买 nike

我正在尝试使用使用场景(也是新的)的新应用程序来实现新的 iOS 13 后台任务功能。没有很多例子,但我发现的那些没有使用 SceneDelegate,而是所有的逻辑都包含在 AppDelegate 中。这会导致问题,因为应用程序进入后台的事件现在在 SceneDelegate 而不是 AppDelegate 中引发。

使用场景时,此方法不会在 AppDelegate 中触发

func applicationDidEnterBackground(_ application: UIApplication) {

}

此方法在 SceneDelegate 中触发
func sceneDidEnterBackground(_ scene: UIScene) {

}

我无法在 AppDelegate 中为以下方法找到相应的 SceneDelegate 方法,其中所有示例都显示 BGTaskScheduler 注册任务
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
BGTaskScheduler.shared.register(forTaskWithIdentifier: "UNIQUE_ID", using: DispatchQueue.global()) { task in
refreshMethod(task: task as! BGAppRefreshTask)
}

}

我的问题是 SceneDelegate 中是否有一些事件我可以在其中注册任务,如果没有,对于基于场景的应用程序推荐遵循的模式是什么。

最佳答案

AppDelegate.didFinishLaunchingWithOptions仍然在应用程序启动时调用,即使您有 SceneDelegate。因此,您应该继续在该方法中注册您的后台任务。

关于swift - BackgroundTask iOS 13 Swift 与场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58016967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com