응용 프로그램이 백그라운드 상태로 들어가면 스레드를 만들고 시작해야하는 요구 사항이 있습니다. 생성 된 스레드의 기능은 로컬 DB에서 데이터를 가져 와서 서버에 업로드하는 것이므로 UI에 대한 업데이트가 필요하지 않습니다. 내 질문은 :iOS 응용 프로그램이 백그라운드 상태가 될 때 스레드 시작
- 어디 정확히 내가 스레드를 만들어야합니다 -
applicationWillResignActive
방법 또는applicationDidEnterBackground
을에서 하나? - 스레드 (nsthread 웨이 또는 GCD 또는 Posix 웨이)를 만드는 가장 좋은 방법은 무엇입니까?
것들 나는 아직 내가이 시나리오를 달성 할 수있는 방법을 알고,하지만 난 아이폰 OS에 새로운 해요 안드로이드에 작업 한
- 을 시도했습니다, 그래서 나는 약간 혼란스러워지고 있어요 시작하기.
방금 NSThread 개념으로 시도했지만 작동하지 않았습니다.
- (void)applicationWillResignActive:(UIApplication *)application { [NSThread detachNewThreadSelector:@selector(FetchReportFromDBAndUpload) toTarget:self withObject:nil]; } - (void)FetchReportFromDBAndUpload { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //Check for internet connection and fetch data from DB and upload to server [pool release]; }
가 쓰레드를 생성이 올바른 방법인가, 아니면 일부 변경을 어떻게해야합니까 : 아래 코드는 내 지식의 최선을 쓴입니까? 그렇지 않다면 어떻게 달성 할 수 있는지 안내해주십시오. 미리 감사드립니다.
감사합니다. 다니엘, 좀 더 설명해 주시겠습니까? 당신은 저에게 그 코드 스 니펫을 줄 수 있습니까? – RockandRoll
@SunilHavnur 장기 실행 태스크를 보내기 전에'applicationDidEnterBackground :'메소드에서'beginBackgroundTaskWithExpirationHandler :'메소드를 호출해야합니다. 내가 링크 된 기사에서 목록 3-3을 참조하십시오. –
그래 고마워 .. 알았어 .. – RockandRoll