2013-02-26 8 views
4

나는이 두 상태에 대해 약간 혼란 스럽다. 다음은 나의 이해입니다. 응용 프로그램이 배경이며 애플리케이션을 plist 파일에서 NO로 "Application does not run in background" 설정이있는 경우 다음 응용 프로그램이 백그라운드에서 을 계속 실행배경과 정지 된 앱 상태 사이의 혼동

. 일시 중지 모드에서 앱은 메모리에 남아 있지만 코드를 실행하지 않습니다! 시스템이 Suspended 상태로 이동할 때 응용 프로그램에 알리지 않고 메모리가 부족한 상태에서 응용 프로그램을 지우고 포 그라운드 응용 프로그램을위한 공간을 만듭니다.

내 이해가 정확합니까? 그렇다면 왜 백그라운드에서 실행되고 코드를 실행하는 응용 프로그램에서 콘솔에 NSLog를 인쇄해야합니까? 실제로 서버에서 데이터를 가져 오는 TCP 소켓 연결은 어떻게됩니까? 어쨌든 Suspended 상태가 필요한 이유는 시스템이 결국 메모리 부족 상황에서 메모리에서 App을 지 웁니다. 앱이 정지 상태에서 활성 상태가되거나 새로 시작되는 것과 다른 점이 있습니까?

답변

2

"App States and Multitasking"섹션의 IOS App Programming Guide 섹션을 참조하십시오. Xcode 문서에서 "App States and Multitasking"및 "Hits Must"항목을 "Match Search Term"으로 설정하여 검색하십시오. 또 다른 유용한 검색 구문 : "백그라운드 실행".

요약 대답은 응용 프로그램이 이유의 제한된 수의 무기한 백그라운드에서 "실행"을 계속 할 수 있다는 것입니다 : 특정 응용 프로그램 유형이 백그라운드에서 실행하도록 허용 아이폰 OS에서

:

백그라운드에서 이 같은 음악 플레이어 응용 프로그램으로 사용자를 유지
  • 앱이 항상 자신의 위치를 통보하면서 사용자에게 청각 적 콘텐츠를 재생
    • 앱,의 UCH 네비게이션 응용 프로그램 인터넷 프로토콜 (VoIP)를 새로운 콘텐츠를 외부 액세서리에서 정기적으로 업데이트를받을
    • 앱을 다운로드하고 처리 할 필요가
    • 뉴스 가판대 앱을 통해 음성을 지원
    • 앱으로
  • 특정 작업을 제외하고 응용 프로그램은 문서가 "백그라운드에서 유한 길이 작업 실행"절에서 설명하는 매우 짧은 시간 동안 계속 실행하도록 요청할 수 있습니다. 잠시 후 앱이 시스템에 알려 (또는 중단 된 후) 강제 종료됩니다. 문서의 세부 정보.

    유용한 상태 다이어그램이있는이 문서의 또 다른 유용한 비트는 "응용 프로그램 상태 변경 관리"섹션입니다. 이 섹션에서는 배경으로 들어가서 포 그라운드로 돌아가는 것에 대해 이야기합니다. 일시 중지 상태에서 시작하는 것과 시작한 것의 차이점에 대한 질문에 대답해야합니다. 짧은 (매우 정확하지는 않은) 대답은 정지 상태에서 시작하여 배경을 입력하거나 전경에 입장 할 때 특별한 조치를 취하지 않으면 그때 당신이 어디 있었는지 더 많거나 적게 계속됩니다 . 또한 정지 상태에서 시작하는 것이 더 빠릅니다. 그것이 내가 말한 의역보다 훨씬 나은 것을 말한 이후로 의사를 읽으십시오.

    1

    앱 국가

    실행되지 않음 :이 시작하기 전에 앱이 상태에 있습니다.

    액티브 : 앱이 시작되면 앱이 활성화됩니다.

    비활성 : 앱이 실행 중이지만 전화 통화가 중단 될 때 중단되는 경우 비활성 상태가됩니다. 비활성은 앱이 여전히 포 그라운드에서 실행 중이지만 이벤트를 수신하지 않음을 의미합니다.

    배경 :이 상태에서 앱은 더 이상 전경이 아니지만 코드를 실행할 수 있습니다.

    일시 중지됨 : 앱이 더 이상 코드를 실행할 수 없을 때 앱이이 상태가됩니다.

    +0

    이 링크를 참조하십시오 : http : //www.codingexplorer.com/execution-states-swift-ios-app/ 훨씬 더 설명했습니다. –