Java 计时器不会像应该的那样刷新Android用户界面
我制作了一个计算奶牛的应用程序。基本上你有奶牛的收入。我用定时器来处理收入,一切都很顺利,直到我换到另一项活动,回到主要活动 一旦我回到主活动(来自另一个活动),double(cowCount)会不断增加,但我的refresh()方法(刷新TextView)不会运行,即使它在同一个方法中:Java 计时器不会像应该的那样刷新Android用户界面,java,android,user-interface,timer,Java,Android,User Interface,Timer,我制作了一个计算奶牛的应用程序。基本上你有奶牛的收入。我用定时器来处理收入,一切都很顺利,直到我换到另一项活动,回到主要活动 一旦我回到主活动(来自另一个活动),double(cowCount)会不断增加,但我的refresh()方法(刷新TextView)不会运行,即使它在同一个方法中: public void Income() { cowCount = cowCount + income; runOnUiThread(new Runnable() { pub
public void Income() {
cowCount = cowCount + income;
runOnUiThread(new Runnable() {
public void run() {
refresh();
if(timerCancel == true) {
Thread.interrupted();
}
}
});
}
这是我的计时器方法:
public void startIncomeTimer() {
timerRunning = true;
Timer timer = new Timer();
timer.schedule(new Income(), 0, 100);
if(timerCancel == true) {
timer.cancel();
}
}
离开活动时,timerRunning声明为false,timerCancel声明为true。那么,为什么runOnUiThread()没有正确执行?我很困惑,但是timerCancel=true。。?你确定那不应该是timerCancel==真的吗?没错。但是我仍然有同样的问题。这个refresh()方法来自什么?我怀疑这是某个视图/布局,当应用程序“重新启动”时会重新创建该视图/布局,所以在死视图树上调用刷新。您应该在挂起或停止时取消计时器,并在恢复或启动时分别重新启动计时器