我想更新一些數據到我的應用程序。考慮應用程序處於後臺狀態,它既不是VoIP或音樂,也不是GPS。是否可以更新/發送數據到後臺的應用程序?更新我的應用程序,當它在後臺
注意:我不想通知用戶,以便應用程序變爲活動狀態。
任何人都可以幫助我?
我想更新一些數據到我的應用程序。考慮應用程序處於後臺狀態,它既不是VoIP或音樂,也不是GPS。是否可以更新/發送數據到後臺的應用程序?更新我的應用程序,當它在後臺
注意:我不想通知用戶,以便應用程序變爲活動狀態。
任何人都可以幫助我?
答案是肯定的,不是。
Apple確實允許您的應用程序在後臺完成漫長的過程。但是,如果您不屬於Voip,音樂或GPS類別,則無法在後臺運行。
例如,如果您想要將某些數據發送到服務器,這可能需要一些時間,那麼您可以將該進程標記爲返回執行直到完成(或已過10分鐘)。
你會發現一些有關Executing a Finite-Length Task in the Background
沒有辦法運行定時器或研究背景一樣,任何東西,你只能完成你開始應用在背景執行前的任務。
@ rckoenes.Thanks您的答覆。我已經通過了多任務和後臺執行蘋果文檔。我想用其他方式來做。我想從服務器發送通知/數據到應用程序(在後臺運行)。我知道,通過發送推送通知,我們可以使該應用程序處於活動狀態,我不想讓應用程序進入前臺。該應用應該保持在後臺並更新數據。那可能嗎 ?? – Cyril 2012-02-16 11:39:07
不,這是不可能的。發送推送通知也不會將應用程序推到前臺,只有在用戶打開推送通知後,您纔會到達前臺。 – rckoenes 2012-02-16 12:13:20
對不起,你誤解了我。我知道發送只有推送通知不會使應用程序成爲前景,除非用戶響應通知。我試圖從服務器更新數據,當應用程序在後臺。 – Cyril 2012-02-16 12:37:18
顯示的警報是內置功能。你無法爲此做任何事情。如果從服務器觸發通知並且應用程序在後臺,則會顯示警報。 我在過去爲這個東西做了很多搜索。
我在我的一項工作中完成了這項工作。這就是我所做的。
當應用程序中輸入:- (void)applicationDidEnterBackground:(UIApplication *)application
我將數據發送到使用ASIHTTPRequest
財產服務器: [request setShouldContinueWhenAppEntersBackground:YES];
但之後結束了,我沒有做了連接或數據操作。所以,只有連接在後臺運行,而不是你的應用。連接完成後,您無法完成很多工作。
正如@rckoenes被提到的那樣,你可能不會執行太長的任務。
如果您希望在應用程序在後臺運行模式下運行時更新服務器數據,那麼該應用程序應該在當時處於活動狀態。只有在使用「音樂,voip或位置跟蹤」時才能激活,否則應用程序將在後臺模式下暫停。
避免這種情況的一種方法是開發您的應用程序並將其設置爲使用,例如「位置跟蹤」。這將使其能夠滿足活動後臺進程的要求,並且您將能夠更新服務器數據。
不幸的是,我不知道應用程序是否可以通過應用程序商店的批准與此設置。 但是,如果您對此解決方案感興趣,可以查找示例here。
參見[鏈接] [1] [1]:http://stackoverflow.com/questions/4594348/iphone-connecting-to-server-in-background/ – Apurv 2012-02-16 11:21:19
我看了蘋果文件,關於運行有限和長期運行的任務。但在這裏,我想從服務器發送數據到應用程序,無論狀態 – Cyril 2012-02-16 11:42:32