0

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

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

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

有人遇到过这样的情况吗?

4

1 回答 1

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 阅读更多关于它的信息。

于 2012-10-19T17:56:41.287 回答