首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MacOS 10.9 (小牛)应用程序中禁用应用程序Nap

在MacOS 10.9 (小牛)应用程序中禁用应用程序Nap
EN

Stack Overflow用户
提问于 2013-11-08 05:44:59
回答 2查看 5.9K关注 0票数 19

我正在编写一个接收OSC消息的应用程序。然而,由于10.9的App-Nap技术,应用程序在离开前台后停止对这些消息的反应。我想禁用在10.9上运行的应用程序的AppNap,但仍然可以在10.8上运行,所以我尝试了这段代码,但它没有显示任何效果。

代码语言:javascript
复制
if ([[NSProcessInfo processInfo] respondsToSelector:@selector(beginActivityWithOptions:reason:)]) {
    [[NSProcessInfo processInfo] beginActivityWithOptions:0x00FFFFFF reason:@"receiving OSC messages"];
}

请参阅github上的完整代码。

if条件看起来像预期的那样工作,并在10.9机器上执行。但尽管如此,应用程序还是会进入休眠状态。(Activity Monitor对我的应用程序显示"App Nap: Yes“)。

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-21 00:06:41

该活动需要存储在属性中。因此,我在头文件中添加了以下内容:

代码语言:javascript
复制
@property (strong) id activity;

然后使用这个实现。

代码语言:javascript
复制
if ([[NSProcessInfo processInfo] respondsToSelector:@selector(beginActivityWithOptions:reason:)]) {
    self.activity = [[NSProcessInfo processInfo] beginActivityWithOptions:0x00FFFFFF reason:@"receiving OSC messages"];
}

感谢所有的贡献者!

票数 12
EN

Stack Overflow用户

发布于 2013-11-13 23:15:29

从你对问题的描述中,听起来你可能想看一看WWDC2013 704,并回顾一下(接近尾声)关于后台连续工作的部分。查看一下setpriority命令的手册可能也会有所帮助。我没有必要禁用应用程序nap,但我认为手动更改进程优先级是一个很好的方法。

2013 WWDC Video 205 (靠近中间)描述了应用程序nap的一些有趣的方面,这些方面可能会影响应用程序是否被限制的结果。来自WWDC2013的视频209提供了以下关于遮挡(应用程序nap接合的点)的屏幕截图可能会很有用。

希望这能有所帮助。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19847293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档