我有一个主要功能是上传图片的 iOS 应用程序。 我的问题是,当应用关闭时,应用可以继续上传图片并与服务器通信吗?
谢谢
最佳答案
如果您使用 NSURLConnection
,您可以使用 UIBackgroundTaskIdentifier
来保持您的连接,即使在应用程序被发送到后台时也是如此:
声明您的后台任务标识符,以便您可以在类实现中的任何位置访问它,例如在 .m 文件的顶部:
@implementation MyClass {
UIBackgroundTaskIdentifier backgroundTaskID;
}
创建连接:
NSURLRequest *request = [NSURLRequest requestWithURL: aURL];
NSURLConnection *uploadConnection = [NSURLConnection connectionWithRequest:request delegate:self];
backgroundTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
// Cancel the connection in case of expiration
[uploadConnection cancel];
}];
在连接完成/失败后,在这两个 NSURLConnectionDelegate
方法中结束后台任务:
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
// Handle a fail
[[UIApplication sharedApplication] endBackgroundTask:backgroundTaskID];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// Handle a success
[[UIApplication sharedApplication] endBackgroundTask:backgroundTaskID];
}
关于ios - 如何在iOS app后台继续上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24183441/