优化重启逻辑

This commit is contained in:
2025-07-18 18:27:37 +08:00
parent 6fe479448c
commit f667c26650
42 changed files with 362 additions and 1370 deletions

View File

@@ -334,4 +334,50 @@ export function setupIPC() {
throw error;
}
});
// 重启软件
ipcMain.handle('restartApp', async (event) => {
logger.info("=============================重启软件");
try {
// 标记为正在重启,避免其他退出逻辑干扰
app.isRestarting = true;
// 确保所有窗口都被正确关闭
const windows = BrowserWindow.getAllWindows();
logger.info(`准备关闭 ${windows.length} 个窗口`);
windows.forEach(window => {
if (!window.isDestroyed()) {
try {
window.close();
logger.info('窗口关闭成功');
} catch (error) {
logger.warn('关闭窗口时出错:', error);
}
}
});
// 延迟执行重启,确保窗口关闭完成
setTimeout(() => {
try {
logger.info('执行应用重启');
app.relaunch();
app.exit(0);
} catch (error) {
logger.error('重启应用失败,尝试强制退出:', error);
try {
app.quit();
} catch (quitError) {
logger.error('强制退出也失败:', quitError);
process.exit(0);
}
}
}, 1000);
return { success: true };
} catch (error) {
logger.error(`重启软件失败: ${error.message}`);
throw error;
}
});
}