根据官方电子文档,我使用以下方法:
export const onAppTryLaunch = () => {
const gotTheLock = app.requestSingleInstanceLock();
// if another app instance is already running
if (!gotTheLock) {
app.quit();
} else {
// main instance event
app.on('second-instance', () => {
openMainWindow(); // my function to focus/restore app window
});
}
};
字符串
但它导致了一个问题-新的应用程序进程无论如何都会出现,并作为幽灵留在系统的进程列表中。
准确地说:在第二次启动时,electron启动了几个新的应用程序进程,除了一个进程之外,所有进程都关闭了,但其中一个进程总是作为幽灵存在,消耗系统的资源,并且不会在主进程退出时关闭。
有没有人知道如何避免这段破碎的代码?
在类似的问题,我发现只有我用的方式已经在这一个和旧的API(无法使用在当前版本)。
2条答案
按热度按时间wnvonmuf1#
我通过在任何其他代码**之前调用
onAppTryLaunch()
(带有电子API以防止新示例启动的函数)**找到了解决方案。是的,
app.quite()
无论如何都应该关闭应用程序,但有时它不会(你认为它会,但应用程序的新幽灵进程已经启动,如果主应用程序已关闭,它将不会关闭),即使app.exit()
也不会有帮助,所以请确保在调用任何其他东西之前关闭应用程序,甚至在应用程序准备就绪之前。cu6pst1q2#
我就是这么做的,我不像你那样有鬼魂的问题。
字符串