繁体   English   中英

保持Java Thread一直运行

[英]Keep Java Thread running all the time

寻找一种优雅的方法来保持Java线程在后台始终运行,只要应用程序正在运行,JavaFX应用程序检查以查看用户凭据是否有效。 我将在Thread内部做的是在一定时间间隔后使用户到期

如果要超时登录,可以使用PauseTransition使登录失效:

Duration timeout = Duration.minutes(...);
PauseTransition logoutTimer = new PauseTransition(timeout);
logoutTimer.setOnFinished(e -> expireCredentials());
logoutTimer.play();

如果您需要在任何时候重置超时,您可以这样做

logoutTimer.playFromStart();

它会重置计时器。

您还可以使用JavaFX属性使其在应用程序中易于管理。 例如

private BooleanProperty loggedIn = new SimpleBooleanProperty();

// ...

public void expireCredentials() {
    loggedIn.set(false);
}

然后,要求用户登录的操作可以检查此属性:

if (loggedIn.get()) {
    doSecureOperation();
}

和UI控件可以将它们的状态绑定到它:

submitSecureDataButton.disableProperty().bind(loggedIn.not());
loginButton.disableProperty().bind(loggedIn);

也许

private ObjectProperty<Credentials> credentials = new SimpleObjectProperty<>();

// ...

public void expireCredentials() {
    credentials.set(null);
}

// ...

submitSecureDataButton.disableProperty().bind(credentials.isNull());
loginButton.disableProperty().bind(credentials.isNotNull());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM