我有一个Timer,它每30秒执行一次TimerTask。我只想让计时器在显示活动时启动一个新的TimerTask,即如果用户接到电话或启动新的活动,计时器将停止。然后我需要定时器重新启动并重新启动时重新启动。活动失去焦点时停止计时器
现在,这应该是很容易的,我覆盖“onWindowFocusChanged(布尔hasFocus)”方法和开始或停止取决于hasFocus值定时器。我启动定时器的方式是每次创建一个新的Timer对象和TimerTask,而我停止Timer的方式是调用Timer对象上的cancel()方法,并将timer设置为null。
我的问题是,这并不总是工作,如果我启动具有定时器和快速开关方向的活动(开始/停止活动),我发现定时器并不总是被取消,我最终得到多个定时器以不断增加的速度启动TimerTasks。
我在这里错过了一些明显的东西吗?任何帮助将不胜感激。
感谢