2011-09-19 56 views
0

與定時器周圍玩,並試圖使他們的行爲權當應用程序發送到後臺,殺等是否在iPhone上的應用程序辭職時自動禁用定時器?

在Xcode中產生的評論來看,你應該resignActive/enterBackground事件禁用/無效計時器。

但是,我還沒有這樣做,但檢查了當我點擊主頁按鈕,然後重新輸入應用程序時,我的計時器會發生什麼。

我基本都在我看來的方法,該定時器觸發每秒:

NSLog(@"workedTimTimerTick workedTime; %@", timeString); 

當我退出該應用程序,輸出停止,當我重新進入應用程序,輸出重新開始。 ..

因爲我沒有對這些生命週期事件上的定時器進行代碼明智的做法,它怎麼會停止調用呢?

輸入讚賞!

回答

2

當您進入後臺模式(Application States and Transitions)時,您的應用程序是暫停

當應用程序處於後臺並且在後臺花費的時間未計入定時器延遲時,您的計時器將不會觸發。

+0

謝謝你,正如我以爲那樣。你能告訴我爲什麼在xcode生成的評論說,我手動應該禁用resignactive調用定時器?無論如何,如果操作系統暫停計時器,似乎不需要。 – Mathias

+0

@Mathias我猜它可能與內存有關(定時器保持目標直到被解僱或失效)。在用戶返回時的剩餘延遲之後再發射它可能不相關(特別是在長時間的背景時間之後)。 – Jilouc

+0

是的,我結束了這樣做,但由於另一個原因:)我有一個appdelegate在三個視圖之間切換,我釋放舊的視圖,並創建一個新的每次我切換。我注意到,定時器的視圖不會被釋放,除非我也殺死定時器,當然並不奇怪。 – Mathias

相關問題