當從托盤實例中單擊菜單項時,我正在啓動一個新的BrowserWindow。每當窗口關閉時,它也會退出包括托盤實例在內的整個應用程序。爲了克服我使用下面的代碼:BrowserWindow中的內存泄漏,Electron
click: function()
{
var win = new BrowserWindow({
width: 400,
height: 600,
resizable: false,
fullscreen: false,
title: 'About',
icon : __dirname+'/assets/logo/windowIcon.png'
})
win.setMenu(null)
win.loadURL(`file://${__dirname}/about.html`)
// win.webContents.openDevTools()
win.on('close', function (e)
{
e.preventDefault()
win.hide()
win.removeAllListeners('close')
})
}
但後來我發現,在關閉窗口後連BrowserWindow實例不會從內存丟棄/釋放。
每次被點擊菜單它會打開一個新的窗口,但在關閉它,它不會從內存中釋放和過程只是棧到內存中。
如何在不終止Tray實例的情況下從內存中釋放BrowserWindow實例?
嗨Vadim,我不想退出應用程序我只想從內存中清除BrowerWindow實例。現在我正在使用'e.preventDefault(); win.hide();」當窗戶關閉時,我想因爲我隱藏窗戶,所以窗戶停留在內存中。當我使用'win.close()'時,它也會退出應用程序。所以我的問題如何關閉窗口,而不必退出應用程序,並從內存中丟棄窗口實例。 –
@VaibhavSidapara我的觀點是你需要處理['window-all-closed'](http://electron.atom.io/docs/api/app/#event-window-all-closed)事件。 –
謝謝你的建議,但我的應用程序只是一個托盤應用程序,如果我把這個邏輯它也會退出托盤應用程序?窗戶只是一個關於我們的頁面而已。整個應用程序作爲托盤應用程序運行。 –