在应用程序运行ios时,如何在后台进行服务调用

时间:2016-12-15 12:17:41

标签: ios objective-c afnetworking nsurlconnection

任何人都知道。如何在用户与特定屏幕交互时进行服务调用。我的意思是我需要在用户与应用程序交互时调用其他数据。但它仍然看起来像设备挂起。请帮帮我。

2 个答案:

答案 0 :(得分:-1)

对于Get请求,请使用此代码

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:URL.absoluteString parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

答案 1 :(得分:-2)

由于您没有提及任何代码段,我假设您正在main主题上执行所有操作,这就是您的应用挂起的原因。要具体说明main线程和background线程,我们会在其他线程的UI线程和main任务上执行所有background相关任务。所以你可以为background任务创建另一个线程,如下所示:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //Perform your background task here
});