Ответ 1
Включить таймер простоя в
- (void)applicationWillResignActive:(UIApplication *)application
и отключите его в
- (void)applicationDidBecomeActive:(UIApplication *)application
Я разрабатываю приложение для музыкального/видеоплеера и просто хочу написать, как отключить автозаблокировку, когда мое приложение находится на переднем плане.
Я знаю, что в какой-то момент я должен использовать [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
и [[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;
}
Я опубликовал эту альтернативу, потому что принятый ответ не предотвращает автоматическую блокировку при появлении предупреждения (электронная почта, сообщение, событие календаря и т.д.) или центр уведомлений или центр управления.
Swift 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