通过 SceneDelegate 的催化剂状态恢复不起作用
Catalyst State Restoration via SceneDelegate not working
当通过停靠图标(右键单击 -> 退出)退出我的催化剂应用程序时,我的 SceneDelegate 的 stateRestorationActivity(for scene: UIScene)
方法被调用并且我 return 一个非零的 NSUserActivity。
但是,当重新启动我的应用程序时,scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)
的 connectionOptions
中没有用户 activity
这个功能对其他人是否正确?我是否需要以特定方式构建我的 UserActivity 才能在 Catalyst 中工作?它在 iOS 上 运行 时正常运行。
在 WWDC2020 实验室期间与工程师谈过这个问题。我的问题,看起来很奇怪,是在退出应用程序后过早地重新启动它。
Catalyst 上的 iOS 个应用程序 运行 将在退出后继续存在。这可以在 Activity 监视器中观察到。据解释,这是应用程序可以完成任何已注册后台任务的时间段。
等待我的应用程序从 ActivityMonitor 中消失然后重新启动后,它恢复了 stateRestorationActivity(for scene: UIScene)
中提供的 activity
作为参考,还有另一种可能性:确保未选中系统偏好设置“退出应用程序时关闭 windows”(在“常规”窗格中)。如果选中,状态恢复将在 quitting/restarting 应用程序时被禁用。
当通过停靠图标(右键单击 -> 退出)退出我的催化剂应用程序时,我的 SceneDelegate 的 stateRestorationActivity(for scene: UIScene)
方法被调用并且我 return 一个非零的 NSUserActivity。
但是,当重新启动我的应用程序时,scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)
connectionOptions
中没有用户 activity
这个功能对其他人是否正确?我是否需要以特定方式构建我的 UserActivity 才能在 Catalyst 中工作?它在 iOS 上 运行 时正常运行。
在 WWDC2020 实验室期间与工程师谈过这个问题。我的问题,看起来很奇怪,是在退出应用程序后过早地重新启动它。
Catalyst 上的iOS 个应用程序 运行 将在退出后继续存在。这可以在 Activity 监视器中观察到。据解释,这是应用程序可以完成任何已注册后台任务的时间段。
等待我的应用程序从 ActivityMonitor 中消失然后重新启动后,它恢复了 stateRestorationActivity(for scene: UIScene)
作为参考,还有另一种可能性:确保未选中系统偏好设置“退出应用程序时关闭 windows”(在“常规”窗格中)。如果选中,状态恢复将在 quitting/restarting 应用程序时被禁用。