2013-10-21 36 views
0

我想使用AFNetworking对我的服务器执行定期的JSON请求(更新用户的配置文件并检查更改)。ios后台下载完成但视图已被破坏

如果后台作业正在运行,但用户按下了“后退”按钮或使ViewController被销毁的任何内容,该怎么办?我怎样才能管理这个?我的意思是,在这种情况下,我想忽略的结果,当用户返回到查看

谢谢

PS再次执行它:我不想要一个完整的工作代码。我只想知道,如果ViewController已被销毁,我怎么能从后台下载作业(使用AFNetworking运行)中知道。

+0

尝试这些值存储在和NSUserDefaults的用户时谈到我从来没有使用AFNetworking这一观点 – Tendulkar

+0

重新启动连接 - 但我会想你给它某种委托的,通常是你的视图控制器。 所有你需要做的(如果是这种情况)是当你的ViewController被卸载时将委托属性设置为nil。 – Marc

回答

1

为了停止正在运行的网络请求,您可以在视图控制器的方法viewWillDisappear:发送cancel到网络操作。

同样,为了在视图变为可见时自动启动网络请求,请使用方法viewWillAppear:

1

如果你只是需要实现你的任务。意思是,只有在出现特定的ViewController时才试图获得更改&。

使用方法

-(void) viewDidappear{ 
// Initialise Your task here 
} 

-(void) viewWillDisappear{ 
// Destoy(Cancel) the task 
} 
1

一个解决办法是实现在使用NSNotification机制的方式下载:

  1. 设置的视图控制器作为一个倾听者。

  2. 设置bg下载以在下载过程完成时触发通知。

  3. 如果风险投资仍在附近时通知触发,很好 - 它会处理通知并做你需要的任何事情。如果它不在......没有任何反应。

相关问题