2012-07-24 57 views
0

我正在開發一個應用程序,即他的任務之一是將消息以tcp發送到服務器。我希望應用程序連續發送該tcp消息,即使用戶退出該應用程序。IOS - 如何在後臺運行應用程序?

我有,我可以做到這一點與:

「在你的Info.plist LSBackgroundOnly設置爲1。」

但它不起作用(我剛剛在模擬器上測試過)。

非常感謝您的幫助!

+1

因爲只有三個服務允許在後臺運行:'location services','audio'和'VoIP',所以當應用程序轉到後臺或設備進入時,任何其他線程都將被掛起休眠模式,當用戶退出應用程序時,應用程序將永久終止。 – holex 2012-07-24 16:24:16

+0

'LSBackgroundOnly'字面意思是你的應用程序可以*只能*在後臺運行 - 它永遠不會處於前臺。顯然,這在iOS上不可用。 – 2012-07-24 22:47:31

回答

3

我只是把Holex的評論放入答案表格來處理這個問題。正如他所說,在應用程序,位置服務,音頻和VoIP背景中只允許運行三種類型的服務。關於你能做什麼和不能做什麼的很好的解讀是來自蘋果的以下http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html。當應用程序失去焦點時會發生什麼結構的相當詳細的文章。但是,如果您不打算通過應用程序商店發佈,則可能僞造VoIP應用程序並在後臺發送/接收消息。然而,這不是一個合理的解決方案,除非您需要快速且非常骯髒的東西,否則確實應該只用於其他方面。

iOS Voip Socket will not run in background這個問題,以及任何相關的問題都是很好的起點。