Kullanıcı eylemleri üzerine bir iletiyi sıçramak için bir zamanlayıcı başlatan bir uygulama var. JDK profilerinde, diğer tüm iş parçacıklarının GC tarafından yürütüldükten sonra kaldırıldığı anlaşılıyor (sanırım) ama oluşturulan zamanlayıcılar kaldırılmıyor. Orada neler olabilir?Java - Zamanlayıcı yürütme sonrasında kaldırılmıyor
benim zamanlayıcı:
/**
* @param owner
* @param added
*/
public static void splashParentWithAnimation(AnchorPane owner, Parent added,double posX,double posY) {
// addParentWithAnimation(owner, added);
owner.getChildren().add(added);
AnchorPane.setLeftAnchor(added, posX);
AnchorPane.setTopAnchor(added, posY);
FadeTransition ft1 = new FadeTransition(Duration.millis(300), added);
ft1.setFromValue(0.0);
ft1.setToValue(1.0);
ft1.play();
Timer messagePrinter = new Timer();
messagePrinter.schedule(new TimerTask() {
@Override
public void run() {
Platform.runLater(() -> {
if (!owner.getChildren().contains(added))
return;
FadeTransition ft1 = new FadeTransition(Duration.millis(300), added);
ft1.setFromValue(1.0);
ft1.setToValue(0.0);
ft1.play();
ft1.setOnFinished((e) -> {
if (owner.getChildren().contains(added))
owner.getChildren().remove(added);
});
});
}
}, 1000);
}
ben statik yöntemi kullanıyorum yoksa kendim mi yok etmeliyiz çünkü mı?
Bu konuda emin değilim ama bilmiyorum, her neyse, javaFX'in zaman çizelgesini (en azından benim için) daha iyi olan yerine kullandım –