在iOS 5中當應用程序進入後臺的Wi-Fi連接丟失iPhone:在屏幕上的Wi-Fi斷開問題鎖定
但我希望設備睡覺前使用在接下來的4-5分鐘的Wi-Fi連接 一些任務可以4-5分鐘應用內進行輸入的背景
,我認爲這可以通過使用
beginBackgroundTaskWithExpirationHandler來完成:
,但我不能夠解決ŧ他的問題
在iOS 5中當應用程序進入後臺的Wi-Fi連接丟失iPhone:在屏幕上的Wi-Fi斷開問題鎖定
但我希望設備睡覺前使用在接下來的4-5分鐘的Wi-Fi連接 一些任務可以4-5分鐘應用內進行輸入的背景
,我認爲這可以通過使用
beginBackgroundTaskWithExpirationHandler來完成:
,但我不能夠解決ŧ他的問題
只是禁用iPhone進入睡眠模式
-(void) sleepModeDisable{
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
}
調用這個函數每10秒,這可能會幫助ü
我處理這個問題是使用beginBackgroundTaskWithExpirationHandler
方式爲我發送的每個網絡請求。
這樣我確保即使我的應用程序移動到背景,我的所有網絡都會完成。
我通常使用一個單獨的對象來處理所有的網絡請求,因此請求被髮送之前,我打電話
- (void)startBackgroundTask
{
// ask for extra time if this is called when app go to suspended
UIApplication *application = [UIApplication sharedApplication];
_bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
// Clean up any unfinished task business by marking where you.
// stopped or ending the task outright.
[application endBackgroundTask:_bgTask];
_bgTask = UIBackgroundTaskInvalid;
}];
}
後,我得到迴應(成功/失敗),或者如果我取消了請求我叫
- (void)stopBackgroudTask
{
UIApplication *app = [UIApplication sharedApplication];
if (_bgTask != UIBackgroundTaskInvalid) {
[app endBackgroundTask:_bgTask];
_bgTask = UIBackgroundTaskInvalid;
}
}
*不要忘記定義UIBackgroundTaskIdentifier *_bgTask;
此外,如果你打算做一個大規模使用的Wi-Fi的您應該設置Application uses Wi-Fi
將plist文件鍵入YES,否則即使您的應用程序正在運行,您的Wi-Fi將在30分鐘後關閉。
這裏沒有火箭科學,這是在iOS中的預期行爲,以節省電池的Wi - Fi時關閉手機如果你告訴iOS,你的應用程序需要一個持久的Wi-Fi,那麼它不會爲你關閉它當你的應用程序正在運行。
對於只需添加UIRequiresPersistentWiFi
到您的info.plist並標記它YES
你試圖使用'beginBackgroundTaskWithExpirationHandler' – rckoenes 2012-08-07 10:19:20
我不知道如何使用beginBackgroundTaskWithExpirationHandler 並在編寫代碼那 – 2012-08-07 10:22:57
那你爲什麼不搜索它並實現它,看它是否有效?這裏是很好的例子:http://stackoverflow.com/questions/10319643/objective-c-proper-use-of-beginbackgroundtaskwithexpirationhandler和http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/ UIApplication_Class/Reference/Reference.html和https://www.google.nl/search?q = beginBackgroundTaskWithExpirationHandler&sugexp = chrome,mod = 14&sourceid = chrome&ie = UTF-8 – rckoenes 2012-08-07 10:34:29