Retired Document
Important: Retired Document: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid.
Preventing sleep
Q: How can I prevent system sleep while my application is running?
A: Most applications should not prevent system sleep, however, there are exceptions. For example, if your application is playing a long movie or slideshow, the user will probably get annoyed if the computer keeps going to sleep. Your application can prevent system sleep by calling UpdateSystemActivity
once every 30 seconds. The following code shows how to create a CFRunLoopTimer
that calls UpdateSystemActivity
every 30 seconds.
Listing 1 Example usage of UpdateSystemActivity
.
#include <CoreServices/CoreServices.h> |
void |
MyTimerCallback(CFRunLoopTimerRef timer, void *info) |
{ |
UpdateSystemActivity(OverallAct); |
} |
int |
main (int argc, const char * argv[]) |
{ |
CFRunLoopTimerRef timer; |
CFRunLoopTimerContext context = { 0, NULL, NULL, NULL, NULL }; |
timer = CFRunLoopTimerCreate(NULL, CFAbsoluteTimeGetCurrent(), 30, 0, 0, MyTimerCallback, &context); |
if (timer != NULL); { |
CFRunLoopAddTimer(CFRunLoopGetCurrent(), timer, kCFRunLoopCommonModes); |
} |
/* Start the run loop to receive timer callbacks. You don't need to |
call this if you already have a Carbon or Cocoa EventLoop running. */ |
CFRunLoopRun(); |
CFRunLoopTimerInvalidate(timer); |
CFRelease(timer); |
return (0); |
} |
Document Revision History
Date | Notes |
---|---|
2018-06-04 | Moved to Retired Documents Library. |
2004-10-22 | Explains how your application can prevent the system from sleeping. |
Explains how your application can prevent the system from sleeping. |
Copyright © 2018 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2018-06-04