2012-10-19 171 views
0

我正在使用S3uploader OSx sdk(我修改了IOS sdk),用於在我的應用程序中上傳文件。對於我上傳的任何文件(一個文件或一大塊文件),我正在創建一個NSOperation。該操作將調用S3uploader sdk來上傳文件。當我的系統醒來時,這一切都很正常。但是如果我進入睡眠模式並回來,NSOperation似乎被吊死了。這不是繼續它的操作。我調試,發現它掛在NSOperation在睡眠模式後暫停

- (S3UploadPartResponse *)uploadPart:(S3UploadPartRequest *)uploadPartRequest;

功能。也許當我進入睡眠模式時,我正在調用這個函數,我不知道爲什麼它不會繼續它的操作。我在我的應用程序中有很多其他操作,如定時器。所有這些似乎工作正常,當我從睡眠模式回來。所以我假設我的應用程序很清楚,系統已從睡眠模式返回。

任何人都面臨這樣的情況?

回答

0

除非您的應用程序播放音頻,使用GPS,MFI等,否則您的應用程序將只能在後臺運行約10分鐘才能終止。

,以確保它獲得了10分鐘後,你應該做這樣的事情 - 在App States and Multitasking.

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ 
     // Clean up any unfinished task business by marking where you. 
     // stopped or ending the task outright. 
     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }]; 

    // Start the long-running task and return immediately. 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

     // Do the work associated with the task, preferably in chunks. 

     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }); 
} 

你可以閱讀更多關於它