Develop
2013.07.22 15:58

[ios] App States

Views 13193 Votes 0 Comment 0
Atachment
Attachment '1'
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

iOS 앱 개발시 경우 – 네트워크를 통한 다운로드/업로드, Music Player 등 – 에 따라 앱이 Background  - 앱 실행 중 홈버튼을 눌렀을 때와 같은 경우 – 에 있을 때도 코드를 수행시켜야 할 필요가 있다. iOS 4.0 부터는 Multitasking를 지원하여 Background 에서도 코드를 수행시킬 수 있다. 이 기능을 알아보기 전에  iOS 앱이 가지는 5가지 상태에 대해 알아보자.

참고로, iOS 3.2 이전 버전에서는  앱은 Background, Suspended 상태를 갖지 못한다. (iOS 4 라 할지라도 특정 기기 – 2009년 중반 이전의 아이폰, 아이팟 터치 – 들도 그렇다. ) 이러한 디바이스에서 동작하는 앱은 Foreground 를 벗어나면 종료된다. 따라서 Background 에서 수행되는 코드를 개발할 때, 디바이스의 Background 지원 여부를 확인할 필요가 있다. (참고 : Background Execution and Multitasking)



 p1.png

State Changes of iOS App < from iOS Developer Library >



iOS App 은 항상 아래의 5가지 중 하나의 상태를 가진다.

  • Not Running : 앱이 실행되기 전 상태, 또는 실행이 되었지만 시스템에 의해 종료된 상태
  • Inactive : Foreground 로 진입은 했으나 이벤트는 아직 받지 못한 상태. iOS 앱은 다른 두 상태 사이에서 상태변환을 할 때 중간  단계로  짧은 시간동안 InActive 에 머물게 된다.
  • Active :  앱이 화면에 보이고 이벤트도 받으며 실행되는 정상 상태. 일반적인 앱의 실행상태이다.
  • Background : 대부분의 앱은 홈버튼을 눌렀을 때 Suspended  상태가 되기 전 잠시 Background 상태에 머문다. 이 상태에서 앱은 일정 시간 일부 코드를 수행할 수 있지만 사용자의 이벤트를 받을 수는 없다. Background에서 추가적인 코드를 수행할 필요가 있는 경우 Background 상태로 남아 일정 시간동안 코드를 수행할 수 있다. 앱이 실행되자마자 Background 로 진입하는 앱은 Inactive 상태를 거치지 않고 바로 Background  상태로 진입한다.
  • Suspended : 앱 실행이 중단된 상태. Suspended 상태에서는 앱은 메모리에 존재하지만 아무런 코드를 수행하지 않는다. System은 앱을 아무런 통보 없이 Background상태에서 자동으로 Suspended 상태로 바꿀 수 있다. 메모리 부족현상이 발생하면 System은 별다른 통보 없이 Suspended 상태의 앱을 종료할 수 있다.

UIApplication Delegate 는 이러한 상태 전이에 반응할 수 있도록 메소드를 정의해 놓고 있다.

  • applicationDidBecomeActive : Active 상태로 전이 될 때 호출된다. Background 앱이 다시 호출되어 Active 상태가 되도 호출된다.
  • applicationWillResignActive : 앱이 Active 상태를 벗어날 것을 알려준다.(ex. 홈 버튼을 누르면 호출됨) 단, 앱이 Background 상태로 전이된다는 보장은 없다. 이 상황에 잠깐 머물다가 다시 바로 Active 상태로 바뀔 수도 있다.
  • applicationDidEnterBackground : Background로 진입. 언제든 System에 의해 Suspended 상태로 전이될 수 있다. 나중에 재생성할 수 있는 모든 리소스들을 제거하고 사용자 데이터를 저장한는 등의 작업을 수행하는 용도로 사용될 수 있다. 이 메소드 호출 이전에 applicationWillResignActive가 호출된다.
  • applicationWillEnterForeground : Background를 벗어나 Foreground로 진입될 것을 알려준다.(아직 Active 상태는 아님) applicationDidEnterBackground 에서 해제한 리소드들을 재생성하는 용도로 사용할 수 있다.이 메소드 호출 뒤에 applicationDidBecomeActive 가 호출된다.
  • applicationWillTerminate : 앱이 종료될 것임을 알려준다. 앱이 Suspended  상태에서 종료되는 것이라면 호출되지 않는다.


[출처] http://soulpark.wordpress.com/2012/07/04/ios-app-state/

?

List of Articles
No. Category Subject Author Date Views
661 Develop [java] 파일 라인수 계산하는 프로그램 (하위 디렉토리까지..) file hooni 2013.04.23 7646
660 Develop [php] 자바스크립트 개판 만들기.. file hooni 2013.04.23 7651
659 Develop [c#]업글 뉴 툴바 개인적으로 만든거.. (new) ㅋㅋ secret hooni 2013.04.23 7651
658 Develop [c] 코드 최적화에 대해.. hooni 2013.04.23 7655
657 Develop [c] 구조체 배열 예제 (학생 성적 계산) file hooni 2013.04.23 7666
656 Develop [c] 프로그래밍의 전반적인 설명 ppt file hooni 2003.04.23 7667
655 Develop [c] 관계형 연산자에 대한 설명 hooni 2013.04.23 7667
654 Develop [linux] tar 명령어 뽀개기.. ㅋㅋ hooni 2003.04.23 7669
653 Develop [c] 프로그램 코드(c/c++)를 html 파일로 변환 file hooni 2013.04.23 7677
652 Develop [doc] mfc 매뉴얼 다운 받아서 완성하기.. ㅋㄷ file hooni 2013.04.23 7706
651 Develop [c#]뉴 툴바 개인적으로 만든거.. (new) secret hooni 2013.04.23 7724
650 Develop [c#] HTML 이벤트 샘플 소스.. file hooni 2013.04.23 7735
649 Develop [js] 키보드 아스키 코드 확인하는 간단한 소스 hooni 2003.04.23 7748
648 Develop [c] 학생명단 관리 프로그램 소스 ㅋㅋ 1 file hooni 2003.04.23 7761
647 Develop [c] 근의 공식으로 2차방정식 풀기.. file hooni 2003.04.23 7764
646 Develop [c] 단기과정[01/08] (다차원 + 배열)포인터, void 포인터 hooni 2003.04.23 7770
Board Pagination Prev 1 ... 31 32 33 34 35 ... 74 Next
/ 74