Electron在后台时避免应用程序节流

考虑下面的例子:

setInterval(function()
{
   console.log(new Date());
});

如果我在OS X下使用electron example.js运行它,它会在我的停靠栏中打开一个图标,并开始在控制台上打印出时间。 但是,如果应用程序没有集中注意力,那么过了一段时间后它会启动节流。

我环顾四周,发现这是由于OS X的节电策略。 现在,如果我需要它继续在后台工作,该怎么办? 我的应用程序将是一个守护进程,每隔一段时间做一些事情,并且我不能让用户茫然地盯着我的应用程序很久。

我在这里发现我可以做到

electron.powerSaveBlocker.start('prevent-app-suspension');

这实际上解决了我的问题。 但是,这是非常有创意的,因为据我的理解,它会阻止系统进入睡眠状态! 我不需要这么多,我只需要我的应用程序就可以在计算机处于活动状态并在线时执行某些操作,而不会强制它永远保持清醒状态。

中间没有任何东西让我的用户不断地将应用程序保持在前台,并让他们的电脑永远失眠?


按照当前的文档:

注意: prevent-display-sleep优先级高于prevent-app-suspension 。 只有最高优先类型才会生效。 换句话说, prevent-display-sleep总是优先于prevent-app-suspension

例如,API调用A prevent-app-suspension请求,另一个调用B请求prevent-display-sleep 。 在B停止它的请求之前,将使用prevent-display-sleep 。 之后,使用prevent-app-suspension

这意味着将prevent-app-suspension设置为开启,仍然可以让系统进入睡眠状态,并且只是按照您的要求进行操作。 然而,您可以运行该功能两次,同时通过两个标志,打开两个选项。 但是,正如上面的文档所述,如果两者都设置为开启,那么在该标志被移除之前系统不会睡眠。

链接地址: http://www.djcxy.com/p/32765.html

上一篇: Avoid app throttling when Electron is in background

下一篇: Hibernate Composite key Criteria Join