我正在开发一个音乐/视频播放器应用程序,只需要知道如何在我的应用程序处于前台时禁用自动锁定。
我知道我必须在某些时候使用[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
and [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
,但是放置它们的最佳位置是哪里?
我正在开发一个音乐/视频播放器应用程序,只需要知道如何在我的应用程序处于前台时禁用自动锁定。
我知道我必须在某些时候使用[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
and [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
,但是放置它们的最佳位置是哪里?
启用空闲计时器
- (void)applicationWillResignActive:(UIApplication *)application
并禁用它
- (void)applicationDidBecomeActive:(UIApplication *)application
禁用它的最佳位置是在 didFinishLaunchingWithOptions 中。当应用程序在后台时,系统会自动处理使设置无效。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
application.idleTimerDisabled = YES;
return YES;
}
我发布了这个替代方案,因为接受的答案不会阻止出现警报(电子邮件、消息、日历事件等)或通知中心或控制中心启动时的自动锁定。
斯威夫特 3.0:
AppDelegate.swift 内部:
application.idleTimerDisabled = true
AppDelegate.swift 外部:
UIApplication.shared().isIdleTimerDisabled = true
在 Swift 3.0 中:
UIApplication.shared().isIdleTimerDisabled = true
我的 2 美分:对于 xcode 9:
application.idleTimerDisabled = true
.....AppDelegate.swift:28:15: 'idleTimerDisabled' 已重命名为 'isIdleTimerDisabled'
所以:
application.isIdleTimerDisabled = true