睡眠模式后NSOperation暂停

时间:2012-10-19 17:22:02

标签: objective-c macos amazon-s3 sleep nsoperation

我正在使用S3uploader OSx sdk(我修改了IOS sdk)来上传我的应用程序中的文件。对于我上传的文件(一个文件或一大块文件),我正在创建一个NSOperation。此操作将调用S3uploader sdk上载文件。当我的系统处于清醒状态时,一切正常。但如果我进入睡眠模式并回来,NSOperation似乎被绞死了。它没有继续它的运作。我进行了调试,发现它被挂起了

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

功能。也许当我进入睡眠模式时,我正在调用此功能,我不知道为什么它不会继续它的操作。我的应用程序中有许多其他操作,如计时器。当我从睡眠模式回来时,所有这些似乎都很好。所以假设我的应用程序很清楚,系统已从睡眠模式返回。

任何人都面临这种情况?

1 个答案:

答案 0 :(得分:0)

除非您的应用播放音频,使用GPS,MFI等,否则您的应用只能在后台运行约10分钟才能终止。

为了确保它达到10分钟,你应该做这样的事情 -

- (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;
    });
}

您可以在App States and Multitasking.

了解更多相关信息
相关问题