Технические вопросы и ответы QA1160
Предотвращение сна
Q: В то время как мое приложение работает, как я могу предотвратить системный сон?
A: В то время как мое приложение работает, как я могу предотвратить системный сон?
Большинство приложений не должно предотвращать системный сон, однако, существуют исключения. Например, если Ваше приложение будет проигрывать длинный фильм или слайд-шоу, то пользователь будет, вероятно, раздражаться, если компьютер продолжит засыпать. Ваше приложение может предотвратить системный сон путем вызова UpdateSystemActivity один раз в 30 секунд. Следующий код показывает, как создать a CFRunLoopTimer это вызывает UpdateSystemActivity каждые 30 секунд.
Использование перечисления 1 В качестве примера 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);
} |
История версии документа
| Дата | Примечания |
|---|---|
| 22.10.2004 | Новый документ, объясняющий, как Ваше приложение может препятствовать тому, чтобы спала система. |