iOS – 如何在后台完成漫长的进程

我的应用将视频上传到Facebook.我想在后台完成上传,即使不耐烦的用户在上传过程中点击主页按钮.

经过一番阅读,我尝试过:

UIBackgroundTaskIdentifier bti = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
         [[UIApplication sharedApplication] endBackgroundTask:bti];
     }];

     [fb requestWithGraphPath:@"me/videos"
                    andParams:params
                andHttpMethod:@"POST"
                  andDelegate:self];

     [[UIApplication sharedApplication] endBackgroundTask:bti];

工作是用fb请求方法完成的.该视频通过http连接上传到Facebook.这可以正常工作,但是如果您在上传过程中点击主页按钮来背景应用程序,则上传将被暂停.如果您前台应用程序,则继续上传.

我希望会发生的是上传将在后台完成.

有什么希望让工作吗?我在整个beginBackgroundTask中做错事情?这样做似乎太简单了,但这是文档似乎所说的.

任何帮助,非常感谢.

– 约翰

解决方法

你需要调用[[UIApplication sharedApplication] endBackgroundTask:bti];在委托回调.您将需要将bti存储在ivar或静态变量中.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...