2012-06-21 91 views
0

我知道這個問題可能是一個有點常見的過來問,但我找不到任何確切的信息......這樣:iphone:轉到後臺運行的應用程序同步web服務

是否有可能有某種線程運行時的應用程序在後臺,所以我可以執行與我的web服務基本同步?

應用程序在後臺:我的意思是用戶點擊主頁按鈕,或切換到另一個應用程序 基本同步:照片上傳和下載與AFNetworking。我知道它有方法來繼續HTTPRequest,而應用程序在後臺,但這不是我的觀點。

我的目標是創建某種同步管理器,閱讀用戶在應用程序中創建的更新照片列表並執行這些更改。

我知道管理員可能被操作系統殺死,但由於我的服務器使用原子轉移,所以它不是問題。我只需要一種方法來重新啓動它...推?

我認爲像谷歌縱橫或郵件這些類型的應用程序使用我在找的東西,但我找不到任何相關的細節。而使用iOS5並不是問題,但是等待iOS6並不是一個解決方案。

謝謝你的回覆! PS:好吧,我差點忘了。該應用程序是爲企業程序設計的,因此規則可能有所不同?我不認爲有任何內部部署檢查,所以它可能會導致新的可能性...

回答

0

找到了!

使用Suhail帕特爾的link on Apple's Multitasking Guide我在Info.plist中添加voip標籤UIBackgroundModes和使用的UIApplicationsetKeepAliveTimeout:handler:方法,如果需要重新啓動一次應用程序要睡覺了。

我希望這會幫助你很多!

當然,這個應用程序不會被允許在App Store上,但對於內部開發,這在我看來是最好的方式。

感謝大家爲我展示正確的方向!

0

Apple的郵件客戶端有一個後臺守護進程,它保持運行,但你不能讓自己的應用程序。一旦應用程序進入後臺狀態,它必須停止它的操作。您可以申請多一點時間,以便完成任何傳輸或寫入磁盤(請參閱在Apple's Multitasking Guide的背景部分中執行有限長度任務)

谷歌縱橫根據位置生成事件。這是Apple針對某些類型的應用程序推出的一種特殊類型的背景(請參見Apple's Multitasking Guide上的實施長時間運行的後臺任務部分),但不能用於HTTP同步。它只能用於音頻,位置,voip,newstand內容,藍牙和外部硬件附件。

推送似乎不是一個解決方案,因爲它只生成警報。直到用戶觸發通知的打開,它纔會觸發任何操作。

+0

好的,這是不酷的,即使我明白他們爲什麼這樣做的原因。但是,那麼Sparrow郵件應用程序如何工作呢? 哦,再次,我可以忘記內部部署的這些限制嗎?我的意思是在家裏,沒有越獄,沒有特別的。謝謝 – dvkch

+0

由於這個確切原因,麻雀也沒有背景模式。然而,既然你沒有部署到應用程序商店,你可以僞裝成一個VOIP應用程序,並使用它的相關套接字方法? (這是Sparrow試圖做的事情,但被App Store拒絕)http://sparrowmailapp.com/push.php –

+0

糟糕我尋找這個網頁,但沒有找到它....是僞裝成VOIP應用程序很容易?我不能創建一個守護進程或其他東西嗎? 目標是在上傳回家的路上在特定地點拍照。也許地理服務可以幫助?再次感謝你 – dvkch

0

您需要閱讀Tech Note 2277 Networking and Multitasking

基本上,你有兩個選擇:

如果你能說服蘋果,你的應用是VoIP應用程序,然後你可以註冊一個網絡電話插座和OS將恢復你的後臺程序,每當有活動的套接字上。

儘管您的主要選擇是爲任何未完成的活動註冊後臺任務,但您的應用程序放置在後臺時必須執行此任務。你通常會花10分鐘完成這項工作。

郵件是一個特殊的應用程序,你不會得到特權。

像Latitude這樣的應用程序通常會註冊自己的位置更新,特別是在主要的地理位置更改時被喚醒。記錄GPS軌跡的應用程序也會做類似的事情

+0

太好了。但是,再次,因爲我在內部部署這意味着蘋果不能告訴我'不',我有新的選擇嗎? – dvkch

+0

我可能想要使用GPS事件,但是如何根據地理定位事件在我的應用中觸發某些操作?我無法找到這個特定的信息是SDK文檔集。對不起,如果這是一個新手問題... – dvkch

相關問題