我想使用AFNetworking对我的服务器执行定期的JSON请求(更新用户的配置文件并检查更改)。ios后台下载完成但视图已被破坏
如果后台作业正在运行,但用户按下了“后退”按钮或使ViewController被销毁的任何内容,该怎么办?我怎样才能管理这个?我的意思是,在这种情况下,我想忽略的结果,当用户返回到查看
谢谢
PS再次执行它:我不想要一个完整的工作代码。我只想知道,如果ViewController已被销毁,我怎么能从后台下载作业(使用AFNetworking运行)中知道。
我想使用AFNetworking对我的服务器执行定期的JSON请求(更新用户的配置文件并检查更改)。ios后台下载完成但视图已被破坏
如果后台作业正在运行,但用户按下了“后退”按钮或使ViewController被销毁的任何内容,该怎么办?我怎样才能管理这个?我的意思是,在这种情况下,我想忽略的结果,当用户返回到查看
谢谢
PS再次执行它:我不想要一个完整的工作代码。我只想知道,如果ViewController已被销毁,我怎么能从后台下载作业(使用AFNetworking运行)中知道。
为了停止正在运行的网络请求,您可以在视图控制器的方法viewWillDisappear:
发送cancel
到网络操作。
同样,为了在视图变为可见时自动启动网络请求,请使用方法viewWillAppear:
。
退房这个问题: Best architecture for an iOS application that makes many network requests?
一个简单的方法是创建一个自定义的网络管理类,将处理所有的请求和网络后台作业的单一实例。你可以从任何地方访问它(例如视图控制器),并且它保持它的实例用于整个应用程序的运行时。
如果你只是需要实现你的任务。意思是,只有在出现特定的ViewController
时才试图获得更改&。
使用方法
-(void) viewDidappear{
// Initialise Your task here
}
-(void) viewWillDisappear{
// Destoy(Cancel) the task
}
一个解决办法是实现在使用NSNotification机制的方式下载:
设置的视图控制器作为一个倾听者。
设置bg下载以在下载过程完成时触发通知。
如果风险投资仍在附近时通知触发,很好 - 它会处理通知并做你需要的任何事情。如果它不在......没有任何反应。
尝试这些值存储在和NSUserDefaults的用户时谈到我从来没有使用AFNetworking这一观点 – Tendulkar
重新启动连接 - 但我会想你给它某种委托的,通常是你的视图控制器。 所有你需要做的(如果是这种情况)是当你的ViewController被卸载时将委托属性设置为nil。 – Marc