iphone - сколько времени приложение может находиться в «спящем» состоянии - PullRequest
1 голос
/ 27 января 2012

Привет, ребята,

У меня странная проблема. Мое приложение работает в фоновом режиме бесконечно, потому что это приложение определения местоположения (да, приложения на основе определения местоположения могут работать бесконечно).

Дело в том, что «иногда» через некоторое время (например, 5, 10 или 36 часов) он падает, пока находится в фоновом режиме, со следующим сообщением:

identifier: UIKitBackgroundCompletionTask process: MyApp[7149] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:7149 preventSuspend  preventIdleSleep 

Я проверял это и не могу найти прямой ответ. Так как он не падает после этих 10 минут, но "всякий раз, когда хочется", я думаю, это может быть связано с тем, как я сплю в приложении. Если я нажимаю home, он переходит в фоновый режим, но если я нажимаю кнопку «Режим сна / Пробуждение», он переходит в другое состояние, режим сна, может ли это состояние привести к аварийному завершению работы моего приложения через неопределенное время?

Спасибо.

[EDIT] По-видимому, это похоже на сбой NSURLConnection под 10.5.7 Но так как это приложение для iPhone, я подумал, что это не будет моей проблемой. Также я не использую эти методы для подключения, возможно, вы можете мне помочь, вот методы, которые я использую для подключения к своему веб-сервису в фоновом режиме:

NSURL *url = [NSURL URLWithString: @"http://mywebservice.com?wsdl"];//to create the url
[NSURLConnection connectionWithRequest:req delegate:self];//sending the request

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
// and then to address the answer of the server
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
...