Ios 应用程序在后台冻结
当我把我的应用程序放到后台,等待几分钟,然后重新激活应用程序,应用程序和整个手机通常都会冻结。当我在调试器中暂停应用程序时,我可以看到主线程正在等待信号量:Ios 应用程序在后台冻结,ios,swift,Ios,Swift,当我把我的应用程序放到后台,等待几分钟,然后重新激活应用程序,应用程序和整个手机通常都会冻结。当我在调试器中暂停应用程序时,我可以看到主线程正在等待信号量: Thread 1 Queue: com.apple.main-thread (serial) 0 semaphore_wait_trap 2 _dispatch_barrier_sync_f_slow 3 -[AAEventsManager addEvent:parameters:async:] 4 -[A
Thread 1 Queue: com.apple.main-thread (serial)
0 semaphore_wait_trap
2 _dispatch_barrier_sync_f_slow
3 -[AAEventsManager addEvent:parameters:async:]
4 -[AAEventsObserver onApplicationStateChanged:]
5 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER_
---------------------------------------------------------
23 UIApplicationMain
24 main
25 start
我的应用程序WillEnterForeground没有代码,并且在调用ApplicationIDBecomeActive之前应用程序冻结。如果我添加了一个后台计时器,它可以进行网络连接,当应用程序和iPhone UI冻结时,它们会在applicationWillEnterForeground之后运行,但连接总是失败。有时,应用程序在前台冻结时几乎立即重启。这些应用程序的cpu使用率为0%,内存使用率为25MB,能源影响为零
我已经用几个iPhone6设备进行了测试,这些设备都有iOS9.2
你知道发生了什么吗?你使用版本控制吗?吉特?如果是,请跳回几个版本,查看第一次发生错误的提交时间-这是查找此类奇怪错误的最简单方法 查找有错误的提交的最快方法是应用二进制搜索算法。假设您有100次提交:
- 首先检查是否在提交1时发生错误
- 如果是,则您已找到带有错误的代码,如果不是,则跳转到一半(提交50)
- 如果此提交中存在错误,则跳转到提交75,如果不是再次跳转到一半(提交25)
- 等等。。。始终保持一半向上或一半向下,直到找到包含错误的确切提交
- 首先检查是否在提交1时发生错误
- 如果是,则您已找到带有错误的代码,如果不是,则跳转到一半(提交50)
- 如果此提交中存在错误,则跳转到提交75,如果不是再次跳转到一半(提交25)
- 等等。。。始终保持一半向上或一半向下,直到找到包含错误的确切提交