即使repeat布尔值为false,UiTimer也会无限运行

时间:2017-08-27 06:41:44

标签: codenameone

我想在这里做的是,如果没有网络,我有一个计时器来检查网络是否每2分钟连接一次。所以最初我重复布尔值为true,它无限循环直到网络连接。一旦网络连接,我就建立了connectionRequest,然后将repeat标志设置为false。但是在调试时,我发现虽然网络已连接且repeat标志设置为false,但计时器无限运行。那是为什么?

if (!Connectivity.isConnected()) {
    Log.p("tracking5 " + "net not connected");
    repeatFlag = true;
    new UITimer(new Runnable() {
        public void run() {
            if (Connectivity.isConnected()) {
                c.liveTrackConnectionMethod(latitude + "", longitude + "");
                repeatFlag = false;
                Log.p("tracking6 " + "net connected AND gps data sent within 2 min");
            }
            Log.p("tracking8 " + repeatFlag + "repeatFlag");
        }

    }).schedule(120000, repeatFlag, Home.this);
}else {
    - - - - - - - - 
    - - - - - - - - 
}

1 个答案:

答案 0 :(得分:0)

重复标记设置为true。请注意,如果在调用schedule后更改它,则不会产生任何影响。