2012-07-21 123 views
0

我現在正在iPhone上開發應用程序。我使用它在應用程序中定期從服務器端更新一些信息。如何讓關閉ios應用程序後仍然運行

當我關閉應用程序時,是否有任何方法來保持更新過程在內存中運行(某處在內存中)?然後當我重新啓動應用程序時可以恢復信息?

回答

2

如果你的意思是:

是否可以繼續運行代碼,如果用戶殺死我的應用程序?

那麼答案是

但是,如果你的意思是:

是否可以繼續運行代碼,而我的應用程序在後臺?

然後你可以使用UIBackgroundTaskIdentifier(文檔here)。

This post解釋它很好

0

有就當你的應用程序在後臺,你可以做什麼,從這個鏈接的限制:Background Execution and Multitasking

聲明您的應用支持後臺任務對於某些類型的後臺執行的必須是

支持由使用它們的應用程序預先聲明。應用程序使用Info.plist文件聲明對服務的支持。將UIBackgroundModes項添加到Info.plist文件中,並將其值設置爲包含以下一個或多個字符串的數組:

audio-應用程序在後臺播放可聽內容給用戶。 (此內容包括使用AirPlay播放音頻或視頻內容。)

位置 - 即使應用程序在後臺運行,應用程序仍會向用戶通知其位置。

voip-該應用程序提供用戶使用Internet連接撥打電話的功能。

報亭內容該應用程序是一個報亭應用程序,可在後臺下載和處理雜誌或報紙內容。

外部附件 - 該應用程序與需要通過外部附件框架定期傳遞更新的硬件附件配合使用。

bluetooth-central-該應用程序與需要通過CoreBluetooth框架定期提供更新的藍牙配件協同工作。

每個前面的值讓系統知道您的應用程序應該在適當的時間被喚醒以響應相關事件。例如,開始播放音樂然後移動到背景的應用程序仍然需要執行時間來填充音頻輸出緩衝區。包括音頻密鑰告訴系統框架他們應該繼續播放,並在適當的時間間隔內對應用進行必要的回調。如果應用不包含此密鑰,則應用移動到背景時,應用正在播放的任何音頻均會停止。

+0

10倍以上。u舉報回覆,但我的意思是,如果用戶關閉應用程序,它變得所以它不是在後臺運行,它沒有吃午飯呢。它完全退出。有沒有辦法讓應用程序不在午餐時保持更新過程運行? – 2012-07-21 09:36:38

+0

當應用程序進入掛起狀態時,它將不能再執行任何代碼,除了上述背景模式 - 音頻,位置,voip等等。 – 2012-07-21 10:16:21

0

嘗試ASIHTTPRequest,他們有一個方法。

+0

您可以在後臺完成當前正在運行的網絡任務,但不能從後臺啓動新任務背景。 ASIHTTPRequest不再受作者的支持,並且他建議使用其他解決方案是有原因的。 – 2012-07-22 00:25:55

相關問題