我必須設置一個時間來檢查從服務器更新數據每天2次,假設9AM和9PM,但我不知道如何做到這一點。如何創建線程來檢查時間?
創建一個線程,每次運行並檢查當前時間與設置,如果它們相等,那麼做任務?這樣好嗎?我認爲這是糟糕的表現。
我必須設置一個時間來檢查從服務器更新數據每天2次,假設9AM和9PM,但我不知道如何做到這一點。如何創建線程來檢查時間?
創建一個線程,每次運行並檢查當前時間與設置,如果它們相等,那麼做任務?這樣好嗎?我認爲這是糟糕的表現。
使用線程,而不是每秒檢查一次,如果相等。你可以使用NSNotification。當時間相同時,它會發送通知來獲取數據。
您可以參閱:iOS timed background processing
可以通過這個教程,以及:http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-local-notifications/
我已經讀了爲好。對我來說也是新的東西。最好的是NSLocalNotifications。看看這個:Reminder App
本地聲明的文檔:Local Notifications
也許當你的應用程序被啓動,就可以得到當前的時間(也可以得到所謂timeInterval0當前時間的一個時間間隔)使用[NSDate date]
和如果您現在的時間是<今天上午9:00,您可以獲取今天上午9:00的timeInterval稱爲timeInterval1。然後您可以獲得從現在到目標時間之間的多少秒,然後使用NSTimer調用您的方法,延遲時間在秒之間。
在您的方法中,您可以檢查更新,並且還必須從上述9點開始計算秒數。
如果考慮到當前時間與目標之間的時間差異,這不會是一個巨大的性能影響。我覺得應該有更好的方法去做。 –
當您的應用程序處於睡眠模式時,可以在iOS的後臺運行一些獨特的服務:_location services_,_audio services_,_VoIP_。任何其他線程都將被暫停,並且當您的應用程序因任何原因被終止時,線程不會運行。 – holex