当我们移动到另一个视图时如何停止 web 服务调用

Posted

技术标签:

【中文标题】当我们移动到另一个视图时如何停止 web 服务调用【英文标题】:How to stop the webservice call when we move to another view 【发布时间】:2014-10-20 05:26:58 【问题描述】:

我正在做一个应用程序。在其中,我为每个视图做了 Web 服务部分。因此,当我在未完成我们服务的当前视图的情况下移动到另一个视图时,我需要停止当前视图中的 Web 服务调用。

请告诉我该怎么做。我启动服务的示例代码如下:

 NSMutableURLRequest *request=[[NSMutableURLRequest alloc]init];
  request=[self GetRequest];

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:nil delegateQueue:nil];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 
    jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

. . .

【问题讨论】:

只要让它的对象“任务”为零,这样当你从一个视图移动到另一个视图时它就会释放它。我也看不到停止任务的任何好处。相反,当用户进行服务调用时,您可以显示活动指示器并防止用户从一个视图跳转到另一个视图。 你为什么要放点? 【参考方案1】:
-(void)viewWillDisappear:(BOOL)animated

    [task cancel];

并使用@property(nonatomic,retain)NSURLSessionTask *task;

【讨论】:

以上是关于当我们移动到另一个视图时如何停止 web 服务调用的主要内容,如果未能解决你的问题,请参考以下文章

当我离开我的应用程序时如何停止 MediaPlayer,而不是当我移动到另一个 Activity 时(Android Studio)

如何让 avaudioplayer 在点击新闻歌曲时停止播放上一首歌曲?

如何确定 Icarousel 停止在哪个视图上?

从该音频ViewController IOS7返回后如何停止音频

如何从 Android 移动应用程序调用本地 Web 服务

当应用程序进入后台时停止后台服务