当app处于前台模式时,如何禁用iPhone/iPad自动锁定?

jMe*_*nik 29 iphone foreground ipad ios auto-lock

我正在开发一个音乐/视频播放器应用程序,只需要知道如何在我的应用程序处于前台时禁用自动锁定.

我知道我已经使用[[UIApplication sharedApplication] setIdleTimerDisabled:YES];,并[[UIApplication sharedApplication] setIdleTimerDisabled:NO];在某些时候,但如果是把他们最好的地方?

Eri*_*ner 24

启用空闲计时器

- (void)applicationWillResignActive:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)

并禁用它

- (void)applicationDidBecomeActive:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)


mal*_*hal 9

禁用它的最佳位置是didFinishLaunchingWithOptions.当应用程序在后台时,系统将自动处理设置无效.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    application.idleTimerDisabled = YES; 
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我发布了此备选方案,因为当出现警报(电子邮件,消息,日历事件等)或通知中心或控制中心启动时,已接受的答案不会阻止自动锁定.


Cra*_*lot 6

斯威夫特 3.0:

在 AppDelegate.swift 中: application.idleTimerDisabled = true

在 AppDelegate.swift 之外: UIApplication.shared().isIdleTimerDisabled = true