2013-10-07 111 views
0

我非常需要後臺任務來運行,當應用程序處於後臺時。爲什麼後臺任務在10分鐘後結束

voip應用程序需要它。所有步驟都爲voip應用程序完成。

我使用下面的腳本來運行後臺任務

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    UIApplication *app = [UIApplication sharedApplication]; 
    UIBackgroundTaskIdentifier bgTask; 
    self.bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
     [app endBackgroundTask:self.bgTask]; 
    }]; 
} 

使用它,當應用程序被切換到後臺,在10分鐘內完成之後,如果SIP呼叫來自UILocalnotification出現。但在10分鐘後,如果有SIP呼叫,則不會顯示UILocalnotification。

請有人幫助我。

回答

1

你有沒有加入voip作爲背景模式,在應用程序Info.plist文件UIBackgroundModes關鍵?

+0

是的,所有步驟都爲VoIP應用程序完成。 – Salim

+0

而不是'beginBackgroundTaskWithExpirationHandler:'您可以使用'setKeepAliveTimeout:handler:'如[這裏]所述(https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/AdvancedAppTricks/AdvancedAppTricks.html# // apple_ref/DOC/UID/TP40007072-CH7-SW12) –

0

有可能是您的應用程序,是因爲在許多background.I要求崩潰的可能性希望您已經按照下列步驟操作:

有用於實施VoIP應用幾個要求:

  • 將UIBackgroundModes鍵添加到您應用的Info.plist文件中。將此密鑰的 值設置爲包含voip字符串的數組。

    • 配置一個用於VoIP使用的應用套接字。

    • 之前移動到背景,調用

    • setKeepAliveTimeout:處理程序:方法來安裝的處理程序是
    • 週期性地執行。您的應用可以使用此處理程序來維護其 服務連接。

    • 配置您的音頻會話以處理與活動 使用的轉換。

    爲了確保iPhone更好的用戶體驗,使用核心電話 架構調整有關細胞爲基礎的電話呼叫 自己的行爲負責;請參閱核心電話框架參考。

  • 爲確保VoIP應用的良好性能,請使用系統配置框架來檢測網絡更改並允許您的應用 儘可能多地休眠。