31

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

我知道我必须在某些时候使用[[UIApplication sharedApplication] setIdleTimerDisabled:YES];and [[UIApplication sharedApplication] setIdleTimerDisabled:NO];,但是放置它们的最佳位置是哪里?

4

5 回答 5

25

启用空闲计时器

- (void)applicationWillResignActive:(UIApplication *)application

并禁用它

- (void)applicationDidBecomeActive:(UIApplication *)application
于 2012-02-23T12:16:59.797 回答
10

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    application.idleTimerDisabled = YES; 
    return YES;
}

我发布了这个替代方案,因为接受的答案不会阻止出现警报(电子邮件、消息、日历事件等)或通知中心或控制中心启动时的自动锁定。

于 2015-08-03T14:35:13.253 回答
6

斯威夫特 3.0:

AppDelegate.swift 内部: application.idleTimerDisabled = true

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

于 2017-04-24T17:09:02.277 回答
1

在 Swift 3.0 中:

UIApplication.shared().isIdleTimerDisabled = true
于 2016-08-10T14:50:58.067 回答
1

我的 2 美分:对于 xcode 9:

 application.idleTimerDisabled = true

.....AppDelegate.swift:28:15: 'idleTimerDisabled' 已重命名为 'isIdleTimerDisabled'

所以:

application.isIdleTimerDisabled = true
于 2017-10-28T15:28:19.450 回答