2012-08-27 64 views
3

一個問題,也許有點天真......CountDownTimer在Activity destroy()上自動取消嗎?

如果我在Activity onCreate()中啓動一個2分鐘的CountDownTimer,並在用戶單擊按鈕時用finish()關閉它,Android會自動取消它嗎?

或者我需要顯式調用onDestroy()中的cancel()嗎?

+0

你有沒有試過它?只需在'onFinish()'中放入一個Log.d(...)並查看它是否被記錄。 – Ridcully

+0

剛剛嘗試過。即使在Activity.finish()之後,onFinish()似乎仍然存在。 –

回答

3

您必須在Ondestroy中明確呼叫cancel。但更好的做法是致電 Onpause
因爲如果你已經暫停了你的活動,並且你更新了倒數計時器的OnFinish裏面的任何UI元素,它可能會拋出錯誤。

+0

一個很好的建議!但我需要在onResume()中重新啓動它。 –

+0

實際上onDestroy()更好,更直接。即使在onPause()期間調用onFinish(),CountDownTimer也不會拋出任何錯誤。我嘗試過這個。 –