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