我有一个访问SOAP Web服务的应用程序,以便下载它的一些数据。我的问题是我需要定期执行此操作。目前,用户按下“更新”按钮以下载数据,但我希望在用户不需要按下按钮的情况下完成。
在这种情况下,最好的方法是什么?
答案 0 :(得分:1)
只要您的下载已经设置好了,您似乎只需使用NSTimer
即可。例如,如果您希望它每30秒触发一次下载,您可以将此行放入:
[NSTimer scheduledTimerWithTimeInterval:30 target:self selector:@selector(doDownload:) userInfo:nil repeats:YES];
你会有像
这样的功能-(void) doDownload:(NSTimer*) timer
如果您完成了下载,请在doDownload
函数中调用
[timer invalidate];
关闭计时器。
答案 1 :(得分:0)
您可能需要澄清我需要定期执行此操作的含义。应用程序中需要更新的频率(例如,您需要每秒,每分钟,每小时更新一次....)。或者它不是周期性的,并且在有可用更新时由服务器驱动。
如果您认为更新数据的决定是在服务器端实现(例如某些内容可能已更新且服务器需要立即更新客户端),请考虑使用Apple的推送通知系统。另一方面,如果所需的更新只是周期性的,那么可以考虑在数据更新频率和设备带宽/电池之间进行最佳平衡,然后再进行更新。