当Electron处于后台时,避免应用限制

时间:2016-03-18 17:53:18

标签: electron throttling power-saving

考虑以下示例:

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

如果我在OS X下使用electron example.js运行它,它会在我的停靠栏中打开一个图标并开始在控制台上打印出时间。但是,如果应用程序没有聚焦,一段时间后它会开始限制。

我环顾四周,发现这是因为OS X节电策略。现在,如果我需要它继续在后台工作怎么办?我的应用程序将成为一个守护进程,不时地做一些事情,我不能让我的用户茫然地盯着我的应用程序多年。

我发现here我可以做

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

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

中间是否有任何东西,让我的用户持续将应用程序保持在前台,让他们的计算机永远失眠?

1 个答案:

答案 0 :(得分:4)

根据目前的文档:

  

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

     

例如,一个API调用A请求prevent-display-sleep,和   另一个呼叫B请求prevent-display-sleep。   将使用prevent-app-suspension直到B停止其请求。后   那个,prevent-app-suspension被使用了。

这意味着将> go get github.com/manyminds/gosfml # github.com/manyminds/gosfml go-proj/src/github.com/manyminds/gosfml/circleShape.go:7:11: fatal error: 'SFML/Graphics/CircleShape.h' file not found #include <SFML/Graphics/CircleShape.h> ^ 1 error generated. 设置为on,仍然允许系统进入睡眠状态,并简单地按照您的意愿进行操作。但是,您可以运行该函数两次,传递两个标志,打开两个选项。但是,正如上面的文档所说,如果两者都设置为on,那么系统将不会睡眠,直到该标志被删除。