ios - SwiftUI 应用程序在进入前台之前冻结了几秒钟
问题描述
我正在开发一个包含大量动画组件的 SwiftUI 应用程序。当应用程序处于前台时,形状上的自定义动画工作正常,没有延迟。它们以 60 FPS 的速度平稳运行。
当应用程序从后台转到前台时,应用程序会冻结几秒钟并变得完全无响应。然后它恢复正常行为。
我尝试运行时间分析器仪器,但主线程没有被阻塞。似乎 CPU 上没有工作。有趣的是,应用程序的后台状态和前台状态(在应用程序生命周期轨道中)之间存在差距,如图所示。
什么可能导致应用程序冻结?关于如何调试此问题的任何想法?
如果有帮助,该应用程序还有一个核心运动组件,当应用程序进入后台时我不会暂停。
解决方案
我考虑了一个类似的问题。就我而言,事实证明修饰符 .drawingGroup() 导致了这个问题。如果我启动我的应用程序一切都很好,但如果我把它放到后台并再次将它带到前台它会停止 4 秒。我删除了 drawingGroup 修饰符,这个问题得到了解决。
推荐阅读
- json - 如何删除一个块。使用 jq 的 json 代码?
- r - 存在 scale_x_reordered() 时更改因子标签 ggplot
- javascript - 您可以将当前标头传递给您要重定向到的路由吗?
- batch-file - "for" 中的变量在获得正确的值后返回 null -- 将 Windows 批处理文件变量设置为 for 中的星期几
- python - 给定两个句子 S1,S2 ;任务是在 S1 中而不是在 S2 中查找单词
- reactjs - 无法读取未定义故事书反应的属性“键”
- zsh - 将 cut delim 与 zsh 一起使用
- typescript - 是否可以从打字稿中的数组对象定义类型
- javascript - 将数据传递给 Chart Js Laravel
- excel - 计算日期,然后在周末或节假日进行调整