我正在使用S3uploader OSx sdk(我修改了IOS sdk)来上传我的应用程序中的文件。对于我上传的文件(一个文件或一大块文件),我正在创建一个NSOperation。此操作将调用S3uploader sdk上载文件。当我的系统处于清醒状态时,一切正常。但如果我进入睡眠模式并回来,NSOperation似乎被绞死了。它没有继续它的运作。我进行了调试,发现它被挂起了
- (S3UploadPartResponse *)uploadPart:(S3UploadPartRequest *)uploadPartRequest;
功能。也许当我进入睡眠模式时,我正在调用此功能,我不知道为什么它不会继续它的操作。我的应用程序中有许多其他操作,如计时器。当我从睡眠模式回来时,所有这些似乎都很好。所以假设我的应用程序很清楚,系统已从睡眠模式返回。
任何人都面临这种情况?
答案 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;
});
}
了解更多相关信息