From 1c7c28f03215f03e97387d7e6b45ae752c396dcb Mon Sep 17 00:00:00 2001
From: HunterHuang0X7C7 <1125607007@qq.com>
Date: 星期六, 12 八月 2023 16:58:15 +0800
Subject: [PATCH] 去掉无用引用,优化退出卡死和窗口泄露,优化开启后启动报错

---
 src/main/java/com/github/hunter0x7c7/sync/utils/TrayUtil.java |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/github/hunter0x7c7/sync/utils/TrayUtil.java b/src/main/java/com/github/hunter0x7c7/sync/utils/TrayUtil.java
index ec9f0cd..50f3170 100644
--- a/src/main/java/com/github/hunter0x7c7/sync/utils/TrayUtil.java
+++ b/src/main/java/com/github/hunter0x7c7/sync/utils/TrayUtil.java
@@ -2,17 +2,15 @@
 
 
 import com.github.hunter0x7c7.sync.model.interfaces.Callback;
+import com.github.hunter0x7c7.sync.model.storage.Session;
 import javafx.application.Platform;
 import javafx.stage.Stage;
-
-import java.util.List;
 
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionListener;
 
 import static com.github.hunter0x7c7.sync.model.global.Parameters.APPID;
-import static com.github.hunter0x7c7.sync.model.global.Parameters.AppNameString;
 
 public class TrayUtil {
 
@@ -64,7 +62,7 @@
 
         TrayIcon trayIcon = new TrayIcon(img, tooltip, popup);
         //璁剧疆鍥炬爣灏哄鑷姩閫傚簲
-        trayIcon.setImageAutoSize(true);
+        //trayIcon.setImageAutoSize(true);
         trayIcon.setActionCommand(APPID);
         trayIcon.addActionListener(new ActionListener() {
             @Override
@@ -102,8 +100,7 @@
             if (tray != null) {
                 tray.remove(trayIcon);
             }
-            //閫�鍑�
-            Platform.exit();
+            exitApp();
         });
         //鐐瑰嚮鍏抽棴鎸夐挳鏃堕殣钘忓満鏅�
         stage.setOnCloseRequest(event -> {
@@ -114,4 +111,23 @@
             });
         });
     }
+
+
+    //閫�鍑�
+    public void exitApp() {
+        //UI绾跨▼
+        Platform.runLater(new Runnable() {
+            @Override
+            public void run() {
+                //閫�鍑哄墠鍏堝叧闂獥鍙�
+                Stage stage = Session.getInstance().getPrimaryStage();
+                if (stage != null) {
+                    stage.close();
+                }
+                //閫�鍑�
+                Platform.exit();
+            }
+        });
+    }
+
 }

--
Gitblit v1.9.1