1
아주 간단한 채팅 응용 프로그램을 작성 중이며 응용 프로그램이 백그라운드로 들어갈 때 긴 폴링 선택기를 일시 중단하는 방법을 알고 싶습니다.긴 폴링 및 applicationDidEnterBackground :
-(void)startPolling
{
[self performSelectorInBackground:@selector(longPoll) withObject: nil];
}
- (void) longPoll {
//Poll the Requested URL...
NSData* responseData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response error:&error];
[self performSelectorOnMainThread:@selector(dataReceived:)
withObject:responseData waitUntilDone:YES];
[self performSelectorInBackground:@selector(longPoll) withObject: nil];
}
-(void) dataReceived: (NSData*) data
{
//Reload my Tableview etc..
}
이 어떻게 응용 프로그램이 다시 전경에 제공 될 때까지 longPoll 선택을 중단 applicationDidEnterBackground:
를 사용합니까 :
현재, 나는 채팅방 클래스과 같이 긴 폴링을 처리 (A UIView의)가? 또는 응용 프로그램 대리인이 자동으로 수행합니까?
감사합니다.
답장을 보내 주셔서 감사합니다. longPoll 내부에서 어떻게 반복 할 것을 권하고 싶습니까? – Moe
아마도 무한 루프 일 것입니다. 계속 폴링을 중지 할 수있는 조건이있는 경우 (기존의/프로그램 일시 중단 이외의) 폴링을 조건으로 사용할 수 있습니다. 이상적으로는 백그라운드 스레드에서 동기 요청 대신'sendAsynchronousRequest : queue : completionHandler :'를 사용해야합니다. –