gpt4 book ai didi

iphone - 在 iOS4 设备上后台发送大量数据的最佳实践?

转载 作者:IT王子 更新时间:2023-10-29 08:01:01 24 4
gpt4 key购买 nike

我有一个应用程序需要将数据(使用 POST)发送到服务器。此功能必须位于 NavigationController 子 Controller 之一上,并且用户应该能够离开此 Controller 和/或关闭应用程序(仅支持 iPhone4/iOS4)。我应该使用线程/NSOperations 或/和使用现有的异步方法发送数据吗?任何想法/最佳实践如何实现这一点?

最佳答案

好的,我会回答我自己的问题。首先,如 tc 所说,最好在应用程序委托(delegate)上进行此调用,以便可以关闭 NavigationController 中的 View 。其次,使用 beginBackgroundTaskWithExpirationHandler: 标记后台处理的开始,并使用 endBackgroundTask: 结束它,如下所示:

.h:

UIBackgroundTaskIdentifier bgTask;

.m:

- (void)sendPhoto:(UIImage *)image
{
UIApplication *app = [UIApplication sharedApplication];

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


NSLog(@"Sending picture...");

// Init async NSURLConnection

// ....
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

NSLog(@"Picture sent.");

UIApplication *app = [UIApplication sharedApplication];

if (bgTask != UIBackgroundTaskInvalid) {
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}
}

在 iOS 终止您的应用之前,您有 10 分钟的时间。您可以使用 [app backgroundTimeRemaining]

检查这个时间

关于iphone - 在 iOS4 设备上后台发送大量数据的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3928861/

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