我有一個Timer,它每30秒執行一次TimerTask。我只想讓計時器在顯示活動時啓動一個新的TimerTask,即如果用戶接到電話或啓動新的活動,計時器將停止。然後我需要定時器重新啓動並重新啓動時重新啓動。活動失去焦點時停止計時器
現在,這應該是很容易的,我覆蓋「onWindowFocusChanged(布爾hasFocus)」方法和開始或停止取決於hasFocus值定時器。我啓動定時器的方式是每次創建一個新的Timer對象和TimerTask,而我停止Timer的方式是調用Timer對象上的cancel()方法,並將timer設置爲null。
我的問題是,這並不總是工作,如果我啓動具有定時器和快速開關方向的活動(開始/停止活動),我發現定時器並不總是被取消,我最終得到多個定時器以不斷增加的速度啓動TimerTasks。
我在這裏錯過了一些明顯的東西嗎?任何幫助將不勝感激。
感謝