如何在Swift中禁用应用程序nap?我是编程新手,我正在构建一个计时器(只是为了练习),我担心app nap会打破我的计时器。
发布于 2015-04-15 00:30:24
我发现this solution在Swift中也能工作。
创建类或全局变量
var activity: NSObjectProtocol?并对其进行分配,之后App Nap将被禁用
activity = NSProcessInfo().beginActivityWithOptions(NSActivityOptions.UserInitiated, reason: "Good Reason")发布于 2017-03-01 17:53:55
Swift 3
var activity: NSObjectProtocol?和
activity = ProcessInfo().beginActivity(options: ProcessInfo.ActivityOptions.userInitiated, reason: "Good Reason")发布于 2018-10-30 05:29:07
Swift 4.x / 5.3
对于ProcessInfo.ActivityOptions,苹果的文档描述了:
static var userInitiated
用于指示应用程序正在执行用户请求的操作的标志。
static var userInitiatedAllowingIdleSystemSleep
用于指示应用程序正在执行用户请求的操作,但系统可以在空闲状态下休眠的标志。
除非您打算阻止系统休眠,否则您应该使用userInitiatedAllowingIdleSystemSleep。
步骤
AppDelegate中)var活动: NSObjectProtocol?
applicationDidFinishLaunching中运行以下命令:activity = ProcessInfo.processInfo.beginActivity(options:.userInitiatedAllowingIdleSystemSleep,reason:"Good Reason")
随时取消并重新启用App Nap:
if let pinfo = activity {
ProcessInfo.processInfo.endActivity(pinfo)
}https://stackoverflow.com/questions/27653939
复制相似问题