2010-10-19 61 views
0

後讓我重新整理,以使其更清晰:做簡單的任務,在後臺很長一段時間在iOS 4+

我怎麼能有一個「報警」熄滅20分鐘後我的應用程序已經在走了背景?


老問題:

你怎麼能對iOS的60年5月10日分後簡單的TAST發生的呢?本質上,在預定義的時間間隔之後讓NSTimer啓動。

我做「開始任務」,睡覺(一段時間);然後「結束任務」。然而,如果我睡了5分鐘以上,我的應用通常會被殺死。我在附近看到有文章提到應用程序可以在後臺保持活動幾個小時,究竟該如何實現?

回答

2

當你的應用程序進入後臺時,系統會嘗試回憶儘可能多的資源,因爲你可以給它像圖片,筆尖等。你有一個這樣的通知。 (– applicationDidEnterBackground:等) 之後,根據資源使用順序對所有後臺生活應用進行「排序」。首先使用更多資源的應用程序。 然後當一個新的應用程序來到前臺,如果系統認爲它需要比目前更多的資源,它將開始殺死後臺應用程序。使用上面的排序列表。

這意味着您在背景中使用的資源越少,您的應用程序的壽命就越長。但是,這不能保證它能活很長時間。 (一切都取決於用戶的使用情況)。當它死亡時也沒有通知!,所以你不能假設你的應用程序將活60分鐘。

您可能想要閱讀this Apple doc關於如何在後臺執行某些操作(帶有一些時間限制,偏離課程),也可能是UIApplicationDelegate類的引用。

希望它幫助;)

+0

感謝這個,我讀過這些文檔,但無法找到如何的事情,具體的說明。我想我可能會嘗試使用「setKeepAliveTimeout:handler:」並將我的應用程序註冊爲VOIP應用程序,並查看Apple是否拒絕它......這似乎是最安全的選擇。在此之前,我會嘗試釋放所有我的應用程序的資源,筆尖和圖像,儘管它沒有太多用處。 – Dimitris 2010-10-19 11:34:41