【发布时间】:2019-01-01 21:00:58
【问题描述】:
我需要澄清一下代号一号UITimer。
例如,如果我想每两秒执行一次相同的代码,像UITimer.timer(2000, true, () -> { do something; }); 这样的代码会一直工作,直到用户停留在当前的Form?对吗?
如果我想每两秒执行一次相同的代码不管显示的Form,我是否要使用与UITimer 不同的东西,比如自定义单独的线程?比如下面的代码?
Form hi = new Form("Hi World", BoxLayout.y());
hi.add(new Label("Hi World"));
hi.show();
EasyThread.start("MyTimer").run(() -> {
boolean executeMe = true;
while (executeMe) {
Log.p("Do something every two seconds...");
try {
Thread.sleep(2000);
} catch (InterruptedException ex) {
Log.p("Stopping the EasyThread \"MyTimer\" because an exception");
Log.e(ex);
executeMe = false;
}
}
});
此外,如果我执行此示例代码,记录的第一行是:
[MyTimer] 0:0:0,59 - Codename One revisions: 8b451ecb7bfbe60baf91006441e7d7d9c46afe09
为什么我的自定义线程而不是 EDT 记录了该行?
【问题讨论】:
标签: codenameone