iMaladec.com - Форум разработчиков под iOS: Работа приложения в фоновом режиме - iMaladec.com - Форум разработчиков под iOS

Перейти к содержимому


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Работа приложения в фоновом режиме работает не больше 15 минут

#1 Пользователь офлайн   yarmolchuk 

  • Продвинутый пользователь
  • PipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Пользователи
  • Сообщений: 129
  • Регистрация: 11 Декабрь 11
  • ГородРовно
  • Моя OS:10.8.2
  • Мой Гаджет:iPhone 5
  • Моя iOS:6.0.1
  • Мой xCode:4.5.2

Отправлено 13 Декабрь 2012 - 19:57

Всем привет.
Есть приложение которое должно работать в фоне все время пока мы его не закрыли или не вышли с него.
Приложение должно иметь связь с сервером с которым оно обменивается данными, так же приложение должно принимать данные в фоне.
Для этого создал сокет с параметром kCFStreamNetworkServiceTypeVoIP и с plist задал нужный ключ UIBackgroundModes
При входе в фоновый режим приложение работает первых 15 минут и потом закрывается и сервер не может отправить ему данные, сам сервер не закрывает сокет и продолжает слать данные.


Кто сталкивался с подобной проблемой? Как правильно все решить?
0

#2 Пользователь офлайн   yarmolchuk 

  • Продвинутый пользователь
  • PipPipPip
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
  • Группа: Пользователи
  • Сообщений: 129
  • Регистрация: 11 Декабрь 11
  • ГородРовно
  • Моя OS:10.8.2
  • Мой Гаджет:iPhone 5
  • Моя iOS:6.0.1
  • Мой xCode:4.5.2

Отправлено 14 Декабрь 2012 - 19:14

- (void)backgroundHandler {

    NSLog(@"### -->VOIP backgrounding callback");    

    UIApplication*    app = [UIApplication sharedApplication];

    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{

        [app endBackgroundTask:bgTask];

        bgTask = UIBackgroundTaskInvalid;

    }];
}

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

    BOOL backgroundAccepted = [[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:^{ [self backgroundHandler]; }];

    if (backgroundAccepted)
    {
        NSLog(@"VOIP backgrounding accepted");
    }

    UIApplication*    app = [UIApplication sharedApplication];

    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{

        [app endBackgroundTask:bgTask];

        bgTask = UIBackgroundTaskInvalid;

    }];        
}


Вот решение проблемы которую я описал выше!
2

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей