2011-11-28 3 views
1

웹용 콘텐츠를 다운로드해야하는 iPhone 용 응용 프로그램을 구현하려고합니다. 이 다운로드는 상당히 크기 때문에 다운로드하는 동안 백그라운드에서 다운로드하여 휴대 전화로 다른 작업을 할 수있는 기회를 제공합니다. 내 문제는 사용자가 잠금 단추를 누르거나 자동 잠금이 시작되면 AppDelegate의 applicationWillResignActive :가 호출되고 약 10 초 후에 전화가 백그라운드로 들어 가지 않고 비활성 상태로 유지되기 때문에 다운로드가 중단된다는 것입니다.전화가 잠긴 경우에도 백그라운드 다운로드가 발생합니다.

내 질문에 내가 뭘 잘못하고 있니? 휴대 전화가 잠겨 있더라도 다운로드를 계속하려면 어떻게합니까?

미리 감사드립니다.

+0

당신에게 우리에게 당신의 코드를 보여줄 필요가 있습니다. –

답변

0

는이 같은 배경 작업 블록 다운로드 코드를 둘러싸고해야

UIApplication* app = [UIApplication sharedApplication]; 
     UIBackgroundTaskIdentifier bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
      //here you need to finish what you are doing evven if you've not finished yet, otherwise your app will be killed 
      [app endBackgroundTask:bgTask]; 
     }]; 

     //here comes your downloading code 

     [app endBackgroundTask:bgTask]; 

이 당신에게 10 분 줄 것이다 (다른 게시물에 따라) 배경에서 코드를 실행하는 ...

+0

그게 정확히 내가 한 일이고, 홈 버튼을 통해 응용 프로그램을 배경으로 보낼 때 완벽하게 작동합니다. 그러나 응용 프로그램이 foregrund 동안 잠금 단추를 누르면, 그냥 비활성화됩니다 (applicationWillResignActive : 호출됩니다)하지만 배경으로 보내지 않습니다. 따라서 백그라운드 작업이 처리되지 않습니다 ... – ethan2000

+0

다음이 방법을 시도해보십시오. http://blog.marcopeluso.com/2009/08/23/how-to-prevent-iphone-from-deep-sleeping/ 그러나 그것이 잘 작동하는지 그리고 그것이 사과에 의해 승인된다면 나는 모른다. – Ariel

+0

좋아, 고마워. 그것은 나를 위해 작동합니다, 나는 그 사과가 그것을 승인하기를 바랍니다. ... – ethan2000

관련 문제