Могу ли я общаться с сервером, когда приложение iphone переходит в фоновый режим? - PullRequest
1 голос
/ 28 октября 2011

Теперь мне нужно перенести сохраненные данные моего приложения на сервер, когда приложение переходит в фоновый режим, но вы знаете, если я использую сетевую передачу в делегирующей функции applicationDidEnterBackground, потому что у нас осталось около пяти секунд после возврата приложения на землю.

Может кто-нибудь сказать мне, можно ли использовать передачу по сети в функции делегата applicationDidEnterBackground или applicationWillResignActive.Или есть еще лучший способ?

Ответы [ 2 ]

3 голосов
/ 28 октября 2011

Я бы предположил, что вы можете продолжать использовать сеть, находясь в фоновом режиме.Одна из задач, для которой предназначена многозадачность, - это, например, разрешить продолжение загрузки фотографий, даже если приложение переходит в фоновый режим.

Перед установлением соединения вам потребуется вызвать следующее:

- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handler

и запомните UIBackgroundTaskIdentifier для вызова следующего, когда соединение закончится:

- (void)endBackgroundTask:(UIBackgroundTaskIdentifier)identifier

Мы используем этот метод для продолжения загрузки контента, который купил пользователь, пока приложение находится в фоновом режиме.Более сложная часть - ExpirationHandler, т.е. что делать, если iOS завершает приложение во время работы соединений.В нашем случае мы прекращаем загрузку и возобновляем ее после перезапуска приложения.

1 голос
/ 28 октября 2011

Попробуйте использовать библиотеку ASIHTTPRequest , и когда ваше приложение перейдет в фоновый режим, вы можете приостановить загрузку и возобновить ее, когда снова будете активны.

...