Это третья часть серии многозадачности iOS. По сравнению с локальными уведомлениями, фоновым звуком, фоновым местоположением и VOIP (не рассматриваются в этой серии), фоновые задачи и быстрое переключение приложений проще всего реализовать. Для этого урока вы должны понимать блоки.
Шаг 1: Создание проекта
Для простоты этого руководства создайте приложение на основе окна, чтобы нам не приходилось иметь дело с View Controllers и дополнительными функциями (одна и та же реализация используется независимо от того, какой шаблон вы используете). Назовите его «Фоновая задача» и снимите флажки «Использовать основные данные» и «Включить юнит-тесты».
Затем откройте Background_TasksAppDelegate.m.
Шаг 2: Реализация кода
Теперь прокрутите вниз до applicationDidEnterBackground: метод и добавьте следующий код:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]) { //Check if our iOS version supports multitasking IE iOS 4
if ([[UIDevice currentDevice] isMultitaskingSupported]) { //Check if device supports mulitasking
UIApplication *application = [UIApplication sharedApplication];
__block UIBackgroundTaskIdentifier background_task;
background_task = [application beginBackgroundTaskWithExpirationHandler: ^ {
[application endBackgroundTask: background_task];
background_task = UIBackgroundTaskInvalid;
//System will be shutting down the app at any point in time now
}];
//Background tasks require you to use asyncrous tasks
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Perform your tasks that your application requires
NSLog(@»\n\nRunning in the background!\n\n»);
[application endBackgroundTask: background_task];
background_task = UIBackgroundTaskInvalid;
});
}
}
|
Заворачивать
Как видите, фоновые задачи чрезвычайно короткие и их легко реализовать. Если вам нужна помощь или вы просто хотите опубликовать предложение, оставьте комментарий ниже!