у нас есть приложение, которое имеет определенную цель, где требуется выход. После выхода процесс должен работать в фоновом режиме в течение определенного периода времени или до его завершения. Нам просто нужно знать, как программно заставить приложение перейти в фоновый режим, где процессы могут продолжаться. Любая помощь в этом была бы отличной! Заранее спасибо!
ОБНОВЛЕНИЕ: Мы подтвердили, что не существует программного способа заставить приложение выйти / войти в фоновый режим и продолжить выполнение фоновых задач. Вы можете принудительно закрыть приложение, используя exit (0); но это убивает приложение все вместе. Однако основная часть этого вопроса касалась выполнения задач в фоновом режиме. Мы нашли решение, которое позволяет нашему приложению начать обработку данных и выполнение задач, которые пользователь должен настроить для обработки. Вот код, необходимый. Это необходимо добавить к делегату приложения, а на устройстве / IOS требуется многозадачность.
- (void)applicationDidEnterBackground:(UIApplication *)app{
// Check that IOS supports multitasking
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]){
// Check that the device supports multitasking
if ([[UIDevice currentDevice] isMultitaskingSupported]) {
// Custom setting to allow users the freedom to enable or disable background tasks
BOOL enabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"backgroundTasksEnabled_key"];
if ( enabled ){
//Get the shared application instance
backGroundApp = [UIApplication sharedApplication];
background_task = [backGroundApp beginBackgroundTaskWithExpirationHandler: ^ {
[backGroundApp endBackgroundTask: background_task];
background_task = UIBackgroundTaskInvalid;
}];
// Run in background
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"\n\nProcess background tasks!\n\n");
// Do your work here
});
}
}
}
}