2016-06-30 53 views
0

我有一個非常獨特的情況:應用程序關閉後上傳數據

我的iOS應用程序具有通過Wi-Fi連接的配套硬件。 Wi-Fi創建本地網絡,這意味着當手機連接時,不存在外部互聯網接入。

我希望能夠將分析發佈到我們通過簡單的REST API構建的中央服務器。問題在於,用戶只能在連接到網絡時打開和關閉應用程序,這意味着當他們確實有外部互聯網訪問時,應用程序可能已被終止(或至少在後臺放置) 。

如果我運行代碼的

-(void)applicationWillResignActive(UIApplication *)application 
OR 
-(void)applicationDidEnterBackground:(UIApplication *)application 
OR 
-(void)applicationWillTerminate:(UIApplication *)application 

內部時,用戶仍然連接到Wi-Fi網絡沒有外界訪問他們可能只被調用。

即使在這些情況下,您是否可以想到將一些簡單數據上傳到我們的服務器?有沒有辦法啓動一個快速的後臺進程來做到這一點?

謝謝!

回答

0

您可以使用NSURLSession從後臺進行上傳。一旦提交了上傳任務,即使您的應用移動到後臺或終止,系統也會繼續運行。

+0

如果應用程序在終止時連接到Wi-Fi會發生什麼情況?我必須以某種方式重試該請求嗎?或者它會被標記爲髒,然後重試(不太可能,但我仍然會問!)? – AlexKoren

+0

我還沒有測試過,但我相信當網絡連接重新建立時,系統將處理丟失連接並啓動/恢復連接。 (除非在連接到您的非互聯網WiFi時發生嚴重故障。) –