Carter Pape
Carter Pape

Reputation: 1039

How do I keep the user's iPhone's display on?

So, I was looking for a way to keep the user's iPhone display on for a clock app. I found [UIApplication sharedApplication].idleTimerDisabled = YES; but that keeps the device from locking all of the time. I tried to [UIApplication sharedApplication].idleTimerDisabled = NO; when the application goes into the background, but that doesn't work. How can I safely keep the user's device from sleeping while my app is running?

Upvotes: 4

Views: 1479

Answers (2)

Mike Gledhill
Mike Gledhill

Reputation: 29191

Here's my solution, using XCode 6.2.

iPhone - phone goes to sleep even if idleTimerDisabled is YES

Basically, even now, in 2015, the only way to safely make sure that the device doesn't go to sleep is to repeatedly call a piece of code to keep the device awake.

-(void)callEveryTwentySeconds
{
    //  DON'T let the device go to sleep during our sync
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
}

Upvotes: 1

Tim
Tim

Reputation: 60130

Alter the idleTimerDisabled property whenever your app changes its active state - if you're going to be backgrounded, re-enable the timer, and when you regain control, disable the timer again.

Upvotes: 4

Related Questions