2012-10-09 4 views
0

응용 프로그램이 포 그라운드에있을 때 수신 전화, SMS와 같은 인터럽트를 처리 할 수있는 방법을 알고 싶습니다. 사과 설명서를 읽었을 때 앱이 일시적으로 비활성 상태가됩니다. 'applicationWillResignActive'함수가 호출됩니다. 타이머 정지, 주기적 작업 및 메타 데이터 쿼리 실행과 같은 작업을 수행해야하며 활성 상태로 돌아 오면 다시 이러한 작업을 사용할 수 없도록 설정해야합니다. 타이머와 주기적 작업을 말할 때 어떤 종류의 작업을 언급하고 있습니까? 그리고 어떻게 이러한 코딩을 현명하게 할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다. 감사IOS 응용 프로그램 개발에서 인터럽트 처리

답변

1

임시 중단을 수신 할 때 예, UIApplication에서 다음 메소드가 호출되는  [Apple's documentation] :

- (void)applicationWillResignActive:(UIApplication *)application 

타이머와주기적인 작업을 참조하는 작업되어 주기적으로 실행되고있는 이러한 종류의 시간제 노동자. 예를 들어 배경에서 타이머를 실행하여보기의 내용을 업데이트 할 수 있습니다. 그런 다음 응용 프로그램이 사임 할 때 해당 타이머를 중지해야합니다.

예를 들어, 당신이 작업을 10 초마다 수행하는 타이머를 실행한다고 가정하자 :

// AppDelegate.m 

// When application becomes active the timer is started 
- (void)applicationDidBecomeActive:(UIApplication *)application { 

    self.timer = [NSTimer scheduledTimerWithTimeInterval:10.0 
                target:self 
               selector:@selector(scheduledTask:) 
               userInfo:nil 
               repeats:YES]; 
} 

// When the application will resign active the timer is stopped 
- (void)applicationWillResignActive:(UIApplication *)application { 

    [self.timer invalidate]; 
    self.timer = nil; 
} 

예약 된 작업은 다음과 같습니다 코드와

- (void)scheduledTask:(NSTimer *)timer { 

    // Up to you... for instance: web service call 
} 
+0

예는보다 나은 서비스를 제공합니다. 어쨌든 고마워요 – clint

+0

예제가 질문에 추가되었습니다. 유용하다면 투표하십시오 :-) – atxe

관련 문제