我有一个计时器,它运行在活动的OnCreate方法上,如下所示。当运行时,计时器将按其应有的方式递增。显示:
00:00,00:01,00:02等
final Timer timer = new Timer();
final TimerTask timerTask = new TimerTask(){
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String timer = sdf.format(new Date(counter * 1000L));
timerText.setText(timer);
counter++;
}
});
}};
timer.schedule(timerTask, 0, 1000);
但是,当我重新查看活动时,计时器的间隔会增加。如果我第一次重温它,间隔就变成2。
00:00,00:02,00:04等
再一次重温它,使间隔3,即
00:00,00:03,00:06等
每隔一段时间都在增加。我推断runOnUIThread方法正在运行n次数,其中n是访问onCreate的次数,但我真的不知道该怎么做。
发布于 2016-04-23 18:18:50
使用指定它为守护进程new Timer(true)
的计时器构造函数,以便如果它退出,计时器线程也会退出。例如,还可以考虑在退出取消或onPause之前使用定时器。
https://stackoverflow.com/questions/36814419
复制相似问题