2013-11-28 3 views
4

Когда ОС запустить приложение для фона выборки последовательности я наблюдал этоКак определить, если приложение запущено, чтобы сделать фон Fetch

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

, а затем

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 

В didFinishLaunching я пытаюсь определить, запущено ли приложение для выполнения Background Fetch, потому что мне нужно отключить некоторые функции, чтобы ускорить загрузку приложения. UIApplication не предоставляет никаких свойств для определения этого.

Я заметил, что UIApplication имеет _applicationFlags, который имеет isHandlingBackgroundContentFetch boolean, который установлен в значение true для Background Fetch, но его внутри @package и не может быть доступен.

+0

Вы проверили журналы устройства? – thorb65

ответ

8

Извините, это не совсем прямой ответ на ваш вопрос, но можете ли вы достичь такого же результата, разделив логику запуска приложения между следующими методами в вашем делете приложения?

1) Любое приложение логики стартап, который является общим для обоих сценариев идет внутри здесь:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

2) Нормальное поведение запуска идет здесь:

- (void)applicationDidBecomeActive:(UIApplication *)application 

3) Фон выборки поведение запуска здесь идет (сокращенная версия того, что находится в № 2):

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
+0

Я закончил тем же, что и вы. – Sohaib

Смежные вопросы