Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计时器不会像应该的那样刷新Android用户界面_Java_Android_User Interface_Timer - Fatal编程技术网

Java 计时器不会像应该的那样刷新Android用户界面

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

我制作了一个计算奶牛的应用程序。基本上你有奶牛的收入。我用定时器来处理收入,一切都很顺利,直到我换到另一项活动,回到主要活动

一旦我回到主活动(来自另一个活动),double(cowCount)会不断增加,但我的refresh()方法(刷新TextView)不会运行,即使它在同一个方法中:

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()方法来自什么?我怀疑这是某个视图/布局,当应用程序“重新启动”时会重新创建该视图/布局,所以在死视图树上调用刷新。您应该在挂起或停止时取消计时器,并在恢复或启动时分别重新启动计时器