2013-01-23 113 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點開始計算秒數。