2010-08-16 9 views
1

응용 프로그램 상태를 감지하여 서버로 보내려고합니다.응용 프로그램 상태 감지

  • 응용 프로그램 : didFinishLaunchingWithOptions :
  • applicationDidBecomeActive :
  • applicationWillResignActive :
  • applicationDidEnterBackground :와 :
  • applicationWillEnterForeground :
  • 새로운 OS4에서 멀티 태스킹과 상태를 감지하는 데 사용할 수 몇 가지 방법이 있습니다
  • 응용 프로그램 예상 시간 :

이제 우리는 applicationWillTerminate 대신 applicationDidEnterBackground를 사용해야한다는 것을 알게되었습니다. 내 문제는 둘 다 필요하다는 것입니다.

사용자가 앱을 배경으로 보내면 잠자기 상태가됩니다. 하지만 사용자가 멀티 태스크 바에서 앱을 닫으면 상태가 닫힙니다. 그래서 나는 사용자가 백그라운드로 앱을 보낼 때와 사용자 (또는 시스템)가 그것을 닫을 때를 모두 감지해야합니다.

어쨌든 만들거나 해결할 방법이 있습니까?

UIApplicationWillTerminateNotification에 가입을 시도했지만 작동하지 않습니다.

감사합니다.

답변

1

iOS 4에서 응용 프로그램이 더 이상 종료되지 않습니다 (믿을 수 있음).

사용자가 홈 버튼을 누르면 응용 프로그램이 백그라운드로 전송되고 did did 배경 알림을 받게됩니다. 그러나 사용자가 멀티 태스킹 막대에서 앱을 닫거나 시스템이 닫으면 앱에 SIGKIL 메시지가 전송되고 알림이 나타나지 않거나 메소드를 위임하지 않고 즉시 종료됩니다.

+0

감사합니다. 그래서 "수면"상태와 "닫힌"상태를 추적 할 수 없습니다. –

+0

'didEnterBackground :'알림을 이용할 수 있습니다. 내가 보는 유일한 문제는 서버에 데이터를 보내기 위해 백그라운드 작업 API를 사용해야한다는 것입니다. 이것이 유일한 이유 일 경우 Apple은이를 허용하지 않을 것입니다. 광고에만 위치 서비스를 사용하는 것과 비슷하지만 허용되지 않습니다. 따라서 사용자가 유용하게 사용할 수있는 다른 것들도 보내지 않으면 애플이 허락하지 않을 것이다. – Jasarien

+0

백그라운드 작업 API를 사용할 필요가 없습니다. 사용자가 애플리케이션을 백그라운드에서 실행 중이거나 닫은 시점을 알 필요가 있으며 상태가 변경되면 서버에 알립니다. 예를 들어 앱을 활성화하거나 백그라운드로 사용자의 댓글을 보여주고 싶지만 앱을 닫은 사용자의 댓글을 표시하고 싶지 않습니다. 나는 아직 응용 프로그램의 활성 상태, 비활성 상태 및 닫힌 상태를 추적 할 수 없다고 믿지는 않습니다 ... –