首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift中禁用应用程序nap

在Swift中禁用应用程序nap
EN

Stack Overflow用户
提问于 2014-12-26 15:05:13
回答 4查看 2.3K关注 0票数 9

如何在Swift中禁用应用程序nap?我是编程新手,我正在构建一个计时器(只是为了练习),我担心app nap会打破我的计时器。

EN

回答 4

Stack Overflow用户

发布于 2015-04-15 00:30:24

我发现this solution在Swift中也能工作。

创建类或全局变量

代码语言:javascript
复制
var activity: NSObjectProtocol?

并对其进行分配,之后App Nap将被禁用

代码语言:javascript
复制
activity = NSProcessInfo().beginActivityWithOptions(NSActivityOptions.UserInitiated, reason: "Good Reason")
票数 7
EN

Stack Overflow用户

发布于 2017-03-01 17:53:55

Swift 3

代码语言:javascript
复制
var activity: NSObjectProtocol?

代码语言:javascript
复制
activity = ProcessInfo().beginActivity(options: ProcessInfo.ActivityOptions.userInitiated, reason: "Good Reason")
票数 5
EN

Stack Overflow用户

发布于 2018-10-30 05:29:07

Swift 4.x / 5.3

对于ProcessInfo.ActivityOptions,苹果的文档描述了:

static var userInitiated

用于指示应用程序正在执行用户请求的操作的标志。

static var userInitiatedAllowingIdleSystemSleep

用于指示应用程序正在执行用户请求的操作,但系统可以在空闲状态下休眠的标志。

除非您打算阻止系统休眠,否则您应该使用userInitiatedAllowingIdleSystemSleep

步骤

  1. 将引用保留在一个作用域中,直到您想要恢复更改的任何点为止(即:在AppDelegate中)

var活动: NSObjectProtocol?

  1. 可能在AppDelegate applicationDidFinishLaunching中运行以下命令:

activity = ProcessInfo.processInfo.beginActivity(options:.userInitiatedAllowingIdleSystemSleep,reason:"Good Reason")

随时取消并重新启用App Nap:

代码语言:javascript
复制
if let pinfo = activity {
    ProcessInfo.processInfo.endActivity(pinfo)
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27653939

复制
相关文章

相似问题

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