2013-01-03 2 views
12

만료 상황 인 경우 didBecomeActive를 호출하지 않음 :백그라운드 작업이 여기

내가 imagepicker를 사용하여 큰 비디오를 따기입니다. 분명히 비디오를 압축하는 데 약간의 시간이 걸릴 것입니다. 그래서 사용자 경험을 쉽게하기 위해 나는 그것을 위해 백그라운드 작업을 가능하게했습니다. 사용자가 비디오를 선택하고 홈 버튼을 탭하면

, 응용 프로그램이 백그라운드로 이동하고 다음 600 초에 대한 비디오를 압축 계속 :

지금 여기에 문제가 온다. 그리고 백그라운드 작업이 만료됩니다. 만료 처리기에서 백그라운드 작업을 중지했습니다.

이제 사용자가 배경 만료

- (void)applicationDidBecomeActive:(UIApplication *)application 

후 응용 프로그램을 다시 시작하는 경우가 호출되지 않습니다. 아무도 왜 이런 일이 일어 났는지 설명 할 수 있습니까?

답변

0

- (무효) applicationDidBecomeActive : (UIApplication) 응용 프로그램

응용 프로그램의 물리게가 활성 상태로 비활성 상태로 변경 될 때이 방법 만했다. 비디오 피킹이 완료되었는지 여부를 알 수 있습니까? 가능하다면 그냥 보관하십시오. 사용자가 앱을 다시 방문하면 필요한 기능을 실행하십시오.

+0

의견에 감사드립니다. 그러나 나는 이것을 안다. 앱이 사용자 통합을받은 후에도 해당 메소드가 호출되지 않는 이유를 알아야합니다. 감사. – Deepukjayan

+0

* 통합 = 상호 작용 – Deepukjayan

0

applicationDidFinishLaunching에 로그 문을 추가 할 수 있습니까? 사용자가 애플리케이션을 열기 전에 앱이 종료되거나 충돌 할 수 있습니다.

또한 올바른 방법은 응용 프로그램이 applicationDidFinishLaunching과 같은 신호를 받으면 응용 프로그램이 구문 분석을 다시 시작하기 시작할 때 현재 구문 분석 컨텍스트를 저장하는 것입니다. 사용자가 앱을 수동으로 닫을 수 있기 때문입니다.

+0

시도해 보겠습니다. – Deepukjayan

1

백그라운드 작업이 만료되면 앱이 실제로 닫힙니다. 따라서 다시 활성화되지는 않습니다. 시작됩니다.

배경 작업이 성공적으로 끝나면 만료 처리기에서 물건을 처리해야합니다. 두 상황 모두이면이 으로 무효화되도록 background_task를 설정해야합니다.

비디오를 변환하는 동안 앱이 백그라운드로 전환 된 다음 사용자가 작업 끝나 배경 작업이 만료되기 전에 다시 열면 applicationDidBecomeActive를 호출하는 앱이 표시되어야합니다.

알고 계시 겠지만, Info.plist 파일에 멀티 태스크 속성이 누락되어있어 앱이 원하는 방식으로 백그라운드 작업을 허용하지 않을 수도 있습니다.

관련 문제