當我將應用程序置於後臺時,等待幾分鐘,然後重新激活應用程序,應用程序通常會凍結整個手機。當我在調試器暫停的應用程序,我可以看到,主線程在等待一個信號:應用程序在後臺凍結
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
我applicationWillEnterForeground沒有代碼和應用程序凍結applicationDidBecomeActive之前調用。如果我添加一個後臺計時器,它可以建立網絡連接,當應用程序和iPhone UI凍結時,它們會在applicationWillEnterForeground之後運行,但連接總是失敗。有時應用程序幾乎立即重新啓動,當它被視爲凍結前景。應用程序的CPU使用率爲0%,內存使用量爲25MB,能源影響爲零。
我已經測試了幾款iPhone 6設備,其中有iOS 9.2。
任何想法發生了什麼?
您是否使用了一些前綴爲「AA」的第三方代碼或庫? – Darko
我試圖儘量減少第三方代碼的使用,並且對pod項目的快速區分大小寫搜索顯示沒有帶前綴「AA」的類。 – Tapani
其他線程呢?例如,是否有東西在等待發送到主線程? –