2011-11-06 39 views
1

當設備進入睡眠模式後,我們的應用程序(Voip應用程序)在後臺時經常會看到此崩潰。應用程序在後臺運行時崩潰 - 設備進入睡眠模式後

Exception Type: 00000020 

Exception Codes: 0xbad22222 

Highlighted Thread: 3 



Application Specific Information: 

SBUnsuspendLimit ooVoo[360] exceeded 15 wakes in 300 sec 



Thread 3 name: com.apple.NSURLConnectionLoader 

Thread 3: 

0 libsystem_kernel.dylib   0x307fc010 mach_msg_trap + 20 

1 libsystem_kernel.dylib   0x307fc206 mach_msg + 50 

2 CoreFoundation     0x3569b41c __CFRunLoopServiceMachPort + 120 

3 CoreFoundation     0x3569a154 __CFRunLoopRun + 876 

4 CoreFoundation     0x3561d4d6 CFRunLoopRunSpecific + 294 

5 CoreFoundation     0x3561d39e CFRunLoopRunInMode + 98 

6 Foundation      0x3167abc2 +[NSURLConnection(Loader) _resourceLoadLoop:] + 302 

7 Foundation      0x3167aa8a -[NSThread main] + 66 

8 Foundation      0x3170e59a __NSThread__main__ + 1042 

9 libsystem_c.dylib    0x30b68c16 _pthread_start + 314 

10 libsystem_c.dylib    0x30b68ad0 thread_start + 0 

這次事故的原因是什麼?我應該做什麼來阻止它?

回答

-1

不完全知道如何/爲什麼,但更新到AsiHttp的更新版本解決了這個問題。

+0

你能詳細說明一下嗎? –

1

看起來你正在談論一個URL,當你要背景。如果是這樣,那麼將一些共享緩存添加到您的NSURL實現中,如果您使用的是NSURLRequest,則增加timeoutInterval值。

如果不是這種情況,則將其作爲背景任務處理。因爲,後臺任務:您可以參考Background Task Handling.

問候,

裏諾·瓊斯

+0

請詳細說明一下,緩存共享方式將有助於在這裏? – Idan

1

NSURLConnectionLoader可能與它無關。

很可能,您的應用被其TCP信令套接字上的流量喚醒。通常,VoIP(SIP?)服務器每隔一段時間發送保持有效消息。一個過於激進的服務器可能會不情願地通過將其暫時取消掛載而不願意終止客戶端。

要麼確保服務器不是經常發送(SIP)保持活動,要麼使用BackgroundTask API來防止應用程序在每次取消暫停後立即掛起。這樣,您可以保持不受保持的數量(以電池消耗爲代價)。

問候

喬納斯·薩靈

相關問題