gpt4 book ai didi

iphone - 在应用程序关闭时在后台运行任务

转载 作者:行者123 更新时间:2023-12-03 21:19:33 27 4
gpt4 key购买 nike

我正在创建一个应用程序,使用 drop box sdk 从 dropbox 下载一个大文件。下载函数的工作方式是我调用 downloadFile 方法并向其传递一个委托(delegate),它将在文件开始下载时以及文件完全下载后回调。

但是,现在如果正在下载文件并且我关闭应用程序,文件下载将暂停,直到用户返回应用程序。

我尝试使用以下代码,但是当我关闭应用程序时,下载仍然无法完成,直到您返回应用程序。

UIApplication* app = [UIApplication sharedApplication];

bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{


//This call calls the sdk to start downloading the file. That method will then
// call this classes delegate methods with the progress of the download as well
// as when the file is totally finished downloading
[DBUtils downloadFile:fileVO.filename withHash:fileVO.filehash withRestClient:self.restClient];


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

知道如何解决这个问题吗?

最佳答案

我猜测 DBUtils downloadFile:... 是一个异步方法。如果是这种情况,您要做的就是开始下载,然后立即结束后台任务。

您应该做的是在 DBUtils 上为自己设置一个委托(delegate)方法,让您的类知道下载何时完成,然后从那里调用 endBackgroundTask。

关于iphone - 在应用程序关闭时在后台运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com