我有一个运行在MacOS (10.10和更新版本)上的C++应用程序(基于Qt),我希望它在运行于MacOS的app-nap mode下时稍微修改一下它的行为。(特别是,为了更新GUI中的状态指示器,它会执行一些周期性的网络查询,但如果应用程序正在休眠,我希望它在从休眠中唤醒之前停止执行这些查询)。
如果我有一个这样的函数:
bool IsThisProcessNapping(); // returns true iff we're in app-nap mode
..。我想我可以实现我想要的行为,但我不知道有这样的函数。它是以其他名字存在的吗?
(请注意,我不想只禁用app-nap,因为我希望我的程序尽可能节能)
发布于 2018-09-27 09:33:26
我不确定你的问题是否有一个明确的答案(我不认为你所说的API确实存在)。
你可以从阅读Energy Efficiency Guide for Mac Apps开始,特别是“增强App Nap”一节:
给定您描述的场景(暂停网络请求以更新状态指示器),请查看Notify Your App When Visibility Changes。
它提供了应用程序委托方法applicationDidChangeOcclusionState:
和windowDidChangeOcclusionState:
的示例。
上面提到的指南还链接到类似的文档,用于检查应用程序的活动状态。
如果你的应用程序不可见,也不活跃,那么它就是app Nap的候选者。在这一点上,如果应用程序实际上还在打瞌睡,对您来说有什么不同?
https://stackoverflow.com/questions/52527477
复制相似问题