coc*_*est 22 iphone multithreading nsoperation grand-central-dispatch ios
我有一个需要将数据(使用POST)发送到服务器的应用程序.此功能必须位于其中一个NavigationController子控制器上,用户应能够远离此控制器和/或关闭应用程序(仅支持iPhone4/iOS4).我应该使用线程/ NSOperations或/并使用现有的异步方法发送数据吗?任何想法/最佳实践如何实现这一点?
coc*_*est 31
好的,我会回答我自己的问题.首先,像tc所说的那样,最好在应用程序委托上进行此调用,以便可以关闭NavigationController中的View.其次,标记后台处理的开始beginBackgroundTaskWithExpirationHandler:并endBackgroundTask:以此结束:
UIBackgroundTaskIdentifier bgTask;
- (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;
}
}
Run Code Online (Sandbox Code Playgroud)
您有10分钟的iOS终止您的应用程序.你可以用这个时间来检查[app backgroundTimeRemaining]
| 归档时间: |
|
| 查看次数: |
14456 次 |
| 最近记录: |