2013-01-23 64 views
0

我必须设置一个时间来检查从服务器更新数据每天2次,假设9AM和9PM,但我不知道如何做到这一点。如何创建线程来检查时间?

创建一个线程,每次运行并检查当前时间与设置,如果它们相等,那么做任务?这样好吗?我认为这是糟糕的表现。

+0

如果考虑到当前时间与目标之间的时间差异,这不会是一个巨大的性能影响。我觉得应该有更好的方法去做。 –

+0

当您的应用程序处于睡眠模式时,可以在iOS的后台运行一些独特的服务:_location services_,_audio services_,_VoIP_。任何其他线程都将被暂停,并且当您的应用程序因任何原因被终止时,线程不会运行。 – holex

回答

0

使用线程,而不是每秒检查一次,如果相等。你可以使用NSNotification。当时间相同时,它会发送通知来获取数据。

您可以参阅:iOS timed background processing

可以通过这个教程,以及:http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-local-notifications/

我已经读了为好。对我来说也是新的东西。最好的是NSLocalNotifications。看看这个:Reminder App

本地声明的文档:Local Notifications

2

也许当你的应用程序被启动,就可以得到当前的时间(也可以得到所谓timeInterval0当前时间的一个时间间隔)使用[NSDate date]和如果您现在的时间是<今天上午9:00,您可以获取今天上午9:00的timeInterval称为timeInterval1。然后您可以获得从现在到目标时间之间的多少秒,然后使用NSTimer调用您的方法,延迟时间在秒之间。

在您的方法中,您可以检查更新,并且还必须从上述9点开始计算秒数。