2015-02-26 1 views
1

Я разрабатываю приложение для пользовательских носимых сообщений через BLE.Перенос данных с центрального на периферийное в фоновом режиме в iOS

Я подписался на фоновый режим пользовательского интерфейса в файле info.plist для Bluetooth-central. Я передаю файл прошивки около 600 кб, разделив его на размеры блоков по 200 байт. Процесс идет нормально, но когда я нажимаю кнопку «Домой», приложение входит в фоновое состояние и, таким образом, завершает процесс через 1-2 минуты.

Если мои экраны затемняются по истечении определенного времени, передача прошивки продолжается, но как только нажата кнопка «домой», приложение перестает передавать данные через несколько минут.

Пожалуйста, помогите мне в этом сценарии.

Спасибо.

ответ

2

Чтобы запустить задачу в фоновом режиме, вам необходимо выполнить следующие шаги.

Шаг 1: Объявить __block UIBackgroundTaskIdentifier bgTask как глобальную переменную.

Шаг 2: Чтобы добавить следующий код в applicationDidEnterBackground.

- (void)applicationDidEnterBackground:(UIApplication *)application { 

    bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ 
    bgTask = UIBackgroundTaskInvalid; 
}]; 

} 

Шаг 3: Остановите обработчик фонового задания после того, как приложения заходят в режим переднего плана.

- (void)applicationWillEnterForeground:(UIApplication *)application { 
     // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 

     [[UIApplication sharedApplication] endBackgroundTask:bgTask]; 

} 
+0

Я попробую это и сообщит, если это сработает. –

+0

Спасибо, товарищ !!! Я думаю, что сейчас работает. Я собираюсь принять ваш ответ, но нужно провести еще несколько тестов. –

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