응용 프로그램이 종료 될 때 전경에서 시작된 비동기 NSURLConnection을 계속하는 방법을 알고 싶습니다. 현재 앱이 백그라운드에서 실행될 때 NSURLConnection을 시작합니다. 사용자가 연결보다 느린 한 앱을 종료하고 싶을 때 제대로 작동합니다. 그러나 사용자가 더 빠르면 연결을 설정할 수 없습니다. 다음은 내 코드입니다 :응용 프로그램이 종료 된 후 NSURLConnection을 계속하십시오.
// AppDelegate.m
- (void)applicationDidEnterBackground:(UIApplication *)application
{
AnObject *newObject = [[AnObject alloc] init];
[newObject InactiveApp];
}
// AnObject.m
- (void)InactiveApp
{
self.backgroundTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
// setting up the NSURLRequest
// [...]
dispatch_async(dispatch_get_main_queue(),^
{
[NSURLConnection connectionWithRequest:request delegate:self];
});
}
// delegate functions, endBackgroundTask-closing, etc. is following
불행하게도이 작동하지 않으며 나는 누군가가 문제를 해결하는 또 다른 방법을 알고 있는지 알고 싶습니다. Snapchat이나 WhatsApp과 같은 방법이 있어야합니다. 왜냐하면 여러분이 메시지를 작성하고 send를 누른 직후 앱을 종료하면 메시지가 전달되기 때문입니다.
내가 상상할 수있는 유일한 방법은 배경 가져 오기를 사용하는 것입니다. 그러나 앱이 백그라운드로 전송 될 때 하나의 연결 만 만들고 싶다는 사실 때문에 이것이 최선의 해결책이 아니라고 생각합니다.
백그라운드 구성으로 NSURLSession을 사용하십시오. – Andy
NSURLSession에서 클래스 참조를 읽고 _download sessions_를 사용하여 NSURLSession을 시도 할 것입니다. 감사합니다! – user3191334