2011-06-05 48 views
0

我想一個方法在後臺工作,直到用戶指定的持續時間很長一段時間(比方說20分鐘)爲止。我知道這是不可能的,因爲Apple允許應用在後臺最多工作10分鐘。不幸的是,FireDate僅適用於UILocalNotification。我也讀了performSelector:Selector:WithObject:afterDelay:方法,但我不確定這是否會在後臺工作。請給我suggesstions和代碼片段(如果有的話)。做的工作,需要在應用程序已經轉到後臺

+0

什麼類型的處理,你看在後臺做什麼? – Blounty 2011-06-05 20:34:34

+0

你使用4.x嗎? – bshirley 2011-06-05 20:42:26

+0

你的問題到底是什麼?我看到很多對話,但在任何地方都沒有問號。 (另請注意,「double dot」'..'不是英文的標點符號。) – 2011-06-05 21:10:21

回答

0

兩個方法,將使用:

NSObject-(void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg

UIApplication - (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler

本地通知可以,如果你希望用戶重新啓動被使用,但如果他們不這樣做通過點擊應用程序,那麼你的應用程序從來不知道它

+0

感謝您的回覆,我確切地知道你提到「beginBackgroundTaskWithExpirationHandler」第二種方法,它不接受我們的應用留在後臺超過10分鐘,所以不是我的使用,因爲在我的用戶也可以給60分鐘!我不確定performSelectorInBackground,它會工作,如果我的應用程序被用戶終止? – Wasim 2011-06-07 02:27:41

+0

還有一件事要問,是否在performSelectorInBackground允許參數傳遞的選擇器(這將是我的自定義方法)? – Wasim 2011-06-07 02:32:12

+0

的performSelector方法運行你的後臺進程的方法,你_can_傳遞給它一個參數 - 第二個需要被調用,可能對郵件線程,當你啓動的後臺進程,像你說的,他們估計10分鐘後,但是不能保證它會這麼長時間,或者他們在某個時候不會允許更多 - 需要跑一個小時的東西似乎是可疑的,你確定沒有更好的解決方案(比你的蠻力希望?) – bshirley 2011-06-07 02:50:49

相關問題